1.如果变量是在方法内部定义的局部变量,编译器不会初始化变量,如果在没有初始化的情况下就使用该变量将会产生编译时的错误信息,提示你变量没有被初始化。
public class Test
{
public static void main(String[] args)
{
int i;
System.out.println("i=" & i);
}
}
2.如果变量是类的成员数据,由于如何方法都可能初始化或者用到这个数据,因此要求用户在使用数据之前就对他进行适当的初始化,就显得不那么现实,然而把垃圾值留给它也不安全,所以类的primitive类型的数据都能确保获得一个初始值。
public class Test
{
int i;
public static void main(String [] args)
{
System.out.println("i=" & i);
}
}
输出结果是
i=0?
3.如果调用构造函数初始化的时候注意,在调用构造函数前,上面一点提到的自动初始化已经完成了。
4.变量的初始化顺序是由变量在类的定义里面的顺序决定的,但是变量的初始化会先于如何方法,甚至构造函数。