饿汉式
饿汉式
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);
}
}饿汉式线程安全
懒汉式存在线程风险
- 同步锁
- 双重锁校验
- 静态内部类
- 枚举
