请给出下面程序的输出结果:
public class ClassLoaderSeq {
/**
* @param args
*/
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();
System.out.println("counter1 = " + singleton.counter1);
System.out.println("counter2 = " + singleton.counter2);
}
}
public class Singleton {
private static Singleton singleton = new Singleton();
public static int counter1;
public static int counter2 = 0;
private Singleton(){
this.counter1++;
this.counter2++;
}
public static Singleton getInstance(){
return singleton;
}
}
这个让人纠结的输出结果:
counter1 = 1
counter2 = 0
public class ClassLoaderSeq {
/**
* @param args
*/
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();
System.out.println("counter1 = " + singleton.counter1);
System.out.println("counter2 = " + singleton.counter2);
}
}
public class Singleton {
private static Singleton singleton = new Singleton();
public static int counter1;
public static int counter2 = 0;
private Singleton(){
this.counter1++;
this.counter2++;
}
public static Singleton getInstance(){
return singleton;
}
}
这个让人纠结的输出结果:
counter1 = 1
counter2 = 0
本文通过一个具体的Java程序示例,展示了单例模式的实现方式及其在实例计数变量上的表现差异。具体分析了Singleton类如何确保仅有一个实例存在,并初始化该实例。

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



