Skip to content

饿汉式

饿汉式

java
package singleton;

// 饿汉式:创建对象实例时直接初始化
// 以空间换时间
public class SingletonOne {
    // 1. 创建类中的私有构造
    private SingletonOne() {

    }

    // 2. 创建该类型的私有静态实例
    private static SingletonOne istance = new SingletonOne();

    // 3. 创建公有静态方法返回静态实例对象
    public static SingletonOne getIstance() {
        return istance;
    }
}
java
package test;

import singleton.SingletonOne;

public class Test {
    public static void main(String [] args) {
        SingletonOne one = SingletonOne.getIstance();
        SingletonOne two = SingletonOne.getIstance();
        System.out.println(one);
        System.out.println(two);
    }
}

饿汉式线程安全

懒汉式存在线程风险

  • 同步锁
  • 双重锁校验
  • 静态内部类
  • 枚举

共 20 个模块,1301 篇 Markdown 文档。