我有一个单身人士
public class Singleton
{
private static Singleton instance = new Singleton();
private Singleton()
{
System.out.println("Instance created.");
}
public static Singleton getInstance()
{
return instance;
}
}
Run Code Online (Sandbox Code Playgroud)
我可以运行此代码,但除非getInstance()
被调用,否则不会创建实例.这很奇怪,因为我println()
在构造函数中应该执行,因为我正在使用急切的实例化.
谁能解释一下?
如果您希望初始化而不调用getInstance()
可以调用的方法,则在第一次加载类之前,将不会创建实例
Class.forName(Singleton.class.getName());
Run Code Online (Sandbox Code Playgroud)
在初始化
你有实例作为静态字段,静态字段在类加载事件上初始化,所以如果你想要初始化,你只需要急切地加载类
归档时间: |
|
查看次数: |
523 次 |
最近记录: |