Không có giá trị mặc định!
Khác với field (instance/static variable), biến cục bộ không được gán giá trị mặc định. Compiler bắt buộc phải khởi tạo (assign) trước khi sử dụng, nếu không sẽ báo lỗi compile-time: variable might not have been initialized.
Ví dụ lỗi compile
public class LocalVarNoInit {
public void print() {
int num; // chưa gán giá trị
System.out.println("Số: " + num); // LỖI COMPILE
}
public static void main(String[] args) {
new LocalVarNoInit().print();
}
}
Lỗi: variable num might not have been initialized
Ví dụ đúng: khởi tạo trước khi dùng
public class LocalVarInit {
public void print() {
int num = 100; // khởi tạo
System.out.println("Số: " + num);
}
public static void main(String[] args) {
new LocalVarInit().print();
}
}
Kết quả: Số: 100
Tóm tắt default value theo kiểu
| Kiểu | Field (instance/static) | Local variable |
|---|---|---|
| byte, short, int, long | 0 | Không có (bắt buộc init) |
| float, double | 0.0 | Không có |
| char | '\\u0000' | Không có |
| boolean | false | Không có |
| Reference (object) | null | Không có |
Best practice: Luôn khởi tạo local variable ngay tại khai báo: int x = 0;.