静态变量在类装载时初始化,只分配一块存储空间。
在装载过一次后,之后产生新对象时,静态变量就不再被初始化。
例子:
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...
本文详细解释了静态变量在Java中的初始化过程。静态变量在类加载时仅初始化一次,并且所有对象共享同一份副本。通过一个具体示例展示了如何在类加载期间初始化静态变量以及其在多个对象创建过程中不重复初始化的特点。
2095

被折叠的 条评论
为什么被折叠?



