静态变量在类装载时初始化,只分配一块存储空间。
在装载过一次后,之后产生新对象时,静态变量就不再被初始化。
例子:
public class StaticClass {
private static String s = init();
private static String init(){
System.out.println("init...");
return "String";
}
}
对这个类测试:
public class MainStaticClass {
public static void main(String[] args) {
StaticClass c = new StaticClass();
StaticClass d = new StaticClass();
}
}
输出:init...
不会出现两行的init...
在装载过一次后,之后产生新对象时,静态变量就不再被初始化。
例子:
public class StaticClass {
private static String s = init();
private static String init(){
System.out.println("init...");
return "String";
}
}
对这个类测试:
public class MainStaticClass {
public static void main(String[] args) {
StaticClass c = new StaticClass();
StaticClass d = new StaticClass();
}
}
输出:init...
不会出现两行的init...