大家来看看这个线程安全的Singleton单例???
Java code
1./* 安全的方式 */
2.public class Singleton {
3.
4. private static Singleton instance = new Singleton();
5.
6. private Singleton() {}
7.
8. public static Singleton getInstance() {
9. return instance;
10. }
11.
12.}
/*非线程安全的方式*/
1.public class Singleton {
2.
3. private Singleton() {}
4. private static Singleton instance = null;
5.
6. public static Singleton getInstance() {
7. if(instance == null) {
8. instance = new Singleton();
9. }
10. return instance;
11. }
12.}
我看到解释如下:第一种方式虽然没有使用同步,但确保了调用static getInstance()方法时才创建Singleton的引用(static 的成员变量在一个类中只有一份)。
---------------------------
我不理解的是,为何说是“调用static getInstance()方法时才创建Singleton的引用”
不是一开始申明static变量的时候就创建了吗private static Singleton instance = new Singleton();
按我的理解两种方式申明instance不是一样的么,都是private static的,只是创建时间不一样而已
为何说第一种比第二种安全?
忘高手详细解释,指点一下
------解决方案--------------------