单例模式
1 package cn.sice; 2 3 public class SingleDemo 4 { 5 6 public static void main(String[] args) 7 { 8 Single s = Single.getInstance(); 9 } 10 11 } 12 13 class Single 14 { 15 private static Single sin = null; 16 17 private Single() 18 { 19 20 } 21 22 public static Single getInstance() 23 { 24 if (sin == null) 25 { 26 synchronized (Single.class) 27 { 28 if (sin == null) 29 { 30 sin = new Single(); 31 } 32 } 33 34 } 35 return sin; 36 } 37 }
懒汉式
1,私有,静态要返回的对象
2,私有构造方法,使其不能通过new创建对象
3,使用静态getInstance()方法来获得对象
4,加入同步代码块保证线程安全,锁为.class
5,为了提高效率,在进入同步前,加入null判断
1 class Single 2 { 3 private static final Single s = new Single(); 4 private Single(){} 5 public static Single getInstance(){ 6 return s; 7 } 8 }
饿汉式
1,引用对象静态 final 修饰
2,私有构造函数
3,静态getInstance()方法

浙公网安备 33010602011771号