class Demo {
private Demo () {
}
static {
System.out.println("Demo init");
}
private static class Instance {
static {
System.out.println("Instance init");
}
private static final Demo demo = new Demo();
}
public static Demo getDemo() {
return Instance.demo;
}
}
public class Single {
public static void main(String[] args) {
Demo demo1 = Demo.getDemo(); // 只初始化一次
Demo demo2= Demo.getDemo();
System.out.println(demo1 == demo2);
}
}