Java设计模式-单例模式-懒汉式(线程不安全)
- 2020 年 3 月 17 日
- 筆記
优缺点说明
1)起到了lazy loading的效果,但是只能在单线程下使用
2)如果在多线程下,一个线程进入了 if(singleton == null)判断语句块,还没有来得及往下执行,另一个线程也通过了这个判断语句,这时便会产生多个实例,所以在多线程环境下不可使用这种方式
3)在实际开发种,不要使用这种方式
public class SingletonTest02 { public static void main(String[] args) { Singleton02 instance = Singleton02.getInstance(); Singleton02 instance01 = Singleton02.getInstance(); System.out.println(instance == instance01); System.out.println("instance,hashCode = " + instance.hashCode()); System.out.println("instance01,hashCode = " + instance01.hashCode()); } } class Singleton02{ private static Singleton02 singleton; private Singleton02(){} public static Singleton02 getInstance(){ if(singleton == null){ singleton = new Singleton02(); } return singleton; } } // 运行结果 true instance,hashCode = 1846274136 instance01,hashCode = 1846274136