单例模式-静态代码块饿汉式
1 /** 2 * 单例模式-静态代码块饿汉式 3 */ 4 public class SingletonTest02 { 5 public static void main(String[] args) { 6 Singleton instanceOne = Singleton.getInstance(); 7 Singleton instanceTwo = Singleton.getInstance(); 8 // out: true 9 System.out.println(instanceOne == instanceTwo); 10 } 11 } 12 13 //饿汉式(静态代码块) 14 class Singleton { 15 16 /** 17 * 1.构造器初始化,外部不能new 18 */ 19 private Singleton() { 20 21 } 22 23 /** 24 * 2.本类内部创建对象实例 25 * 在静态代码块中创建单例对象 26 */ 27 private static Singleton instance; 28 29 static { 30 instance = new Singleton(); 31 } 32 33 /** 34 * 3.提供一个公有的静态方法,返回实例对象。 35 */ 36 public static Singleton getInstance() { 37 return instance; 38 } 39 40 }
饿汉式(静态代码块)
优缺点说明:
1 )这种方式和静态常量汉饿式方式类似,只不过将类实例化的过程放在了静态代码块中,也是在类装载的时候,就执行静态代码块中的代码,初始化类的实例。优缺点和静态常量汉饿式一样。
2) 结论:这种单例模式可用,但是可能造成内存浪费

浙公网安备 33010602011771号