Java - 设计模式之单例模式(饿汉式 V2)

饿汉式 static 初始化:线程安全

Java - 设计模式之单例模式(饿汉式 V2)_第1张图片

  • 饿汉模式的另一种写法:使用静态代码块。
  • 注意:使用静态代码段static{} 初始化单例对象时,一定要注意静态代码段的单例对象申明语句的顺序,类加载时,是顺序执行的。图中的静态变量声明一定要放在静态代码块前面。

 

正确代码

package com.mmall.concurrency.example.singleton;

import com.mmall.concurrency.annoations.ThreadSafe;

/**
 * 饿汉模式
 * 单例实例在类装载时进行创建
 */
@ThreadSafe
public class SingletonExample6 {

    // 私有构造函数
    private SingletonExample6() {

    }

    // 单例对象
    private static SingletonExample6 instance = null;

    static {
        instance = new SingletonExample6();
    }

    // 静态的工厂方法
    public static SingletonExample6 getInstance() {
        return instance;
    }

    public static void main(String[] args) {
        System.out.println(getInstance().hashCode());
        System.out.println(getInstance().hashCode());
    }
}

你可能感兴趣的:(#,Java)