某类的某个成员是基本数据类型,即使没有进行初始化,java也会确保它获得一个默认值,如右表:
基本类型 | 默认值 |
boolean | false |
char | 'uoooo' null |
byte | 0 |
short | 0 |
int | 0 |
long | 0 |
float | 0.0f |
double | 0.0d |
当变量作为类的成员使用时,java才会确保给他默认值,以确保那些基本数据类型的成员变量得到初始值,
防止程序出错。但是,这些初始值对于程序来说可能是不正确的,不合法的。所以最好明确的对变量进行初始化。
但是上述方法并不适用于“局部” 变量(即并某类的字段),因此如果在某个方法中定义有:
int x;
那么变量x的值可能为任意值(与c和c++一样)而不会自动初始化为0。所以在使用前对其赋值。如果未进行初始化,
java编译时会返回一个错误告知你此变量未进行初始化。这是java优于C++的地方。