如下代码:
public class Test {
public static void main(String[] args) {
int i; // 局部变量,申明变量而不赋值,在编译时会报错
System.out.println(i);
}
}
执行上段代码则会报错:

报错原理是:因为布局变量也就是在方法里的变量是在调用方法时(在栈内存中执行方法时才分配内存),如果一开始没有给局部变量赋初始值就使用局部变量,则会包错。
如果是成员变量,只是申明不赋初始值,这种情况则不会报错,因为成员变量是在对象创建时就会开辟一片空间并且自动赋初始值,比如如果变量为:
int ---> 0
long ---> 0L
boolean ---> false
Object ---> null 等等
浙公网安备 33010602011771号