Nội dung
Danh sách bài học
- 01~18 phút
Khai báo method — đóng gói một đoạn việc vào một cái tên
Hiểu method trong Java từ chữ ký (signature), parameter, return type đến cơ chế call stack. Vì sao mỗi method là một stack frame độc lập và điều đó nghĩa là gì cho debug.
- 02~18 phút
Overloading — nhiều method cùng tên, khác signature
Khi nào Java cho phép nhiều method cùng tên trong một class, cách JVM chọn phiên bản nào khi compile, và vì sao autoboxing + varargs làm overloading resolution trở thành mìn.
- 03~14 phút
Varargs — nhận số tham số tùy ý
Cú pháp T... , cơ chế compile thành mảng, tại sao chỉ 1 varargs và phải ở cuối, tương tác với overload + generics, và warning 'unchecked' đáng đọc kỹ.
- 04~18 phút
Recursion — method gọi chính nó
Cách đệ quy hoạt động trên call stack, base case và recursive case, so sánh với vòng lặp, tail recursion (và vì sao JVM chưa tối ưu), và khi nào nên đổi sang iterative.
- 05~16 phút
Scope, shadowing và lifetime — biến sống ở đâu, đến khi nào
Block scope trong Java, shadowing biến cùng tên, lifetime của local vs field, effectively final, và vì sao closure (lambda) bắt biến theo rule đặc biệt.
- 06~25 phút
Mini-challenge: thư viện NumberUtils
Bài thực hành khép lại Module 4 — xây class NumberUtils với các method tĩnh gcd, lcm, isPrime, sum varargs, factorial. Kết hợp method, overloading, varargs, recursion.