之前不清楚,自己写了一遍才知道,原来只有类变量不需要手动初始化。
public class test {
// 无论是静态还是非静态方法中,都不能有静态变量。
// 局部变量每调用一次方法其值都在当前线程的当前栈中临时分配,
// 也就是说对程序,同一时刻,只可能有一块栈内存被当前方法使用,用完了就回收了
// 静态变量和常量是编译时确定的,而方法的局部变量是运行时确定的
int int1;
static int staticInt1;
final static int INT = 2;// 必须要初始化
static {
int staticInt = 0;// 必须要初始化
}
public void OutClass() {
int int2 = 0;// 必须要初始化
}
public static void StaticOutClass() {
int staticInt2;// 必须要初始化
}
// 构造块
{
int structureInt1 = 0;// 必须要初始化
}
public test() {
int structureInt2 = 0;// 必须要初始化
}
}
public class main {
public static void main(String[] args) {
test testObject;
System.out.println("类的静态变量 " + test.staticInt1);
//System.out.println("类的非静态变量 "+testObject.int1);出错,必须要初始化
}
}