答案:JVM将为类的instance和static变量赋上缺省值(默认值),包括数组array中的每一个元素--而不用再写初始化赋值语句。
切记:局部变量是没有缺省值的,必须手动初始化!
这一缺省赋值过程是在对象的构造函数调用之前完成的,如果程序写了对instance和static变量的赋初值语句,且给的值就是JVM默认的值,那么无疑是画蛇添足,重复劳动了一遍。
如下面的代码说明了怎样画蛇添足的:
情况一:
public class Foo {
private int count=0; //多余
private static boolean dd=false; //多余
public Foo()
{
super();
}
}情况二:
public class Foo {
private int count;
private static boolean dd;
public Foo()
{
super();
count=0; //多余
dd=false; //多余
}
}变量或对象引用的缺省值如下:
int : 0
byte : 0
long : 0
shor : 0
float : 0.0
double : 0.0
boolean : false
char : '\u0000'
object reference : null