什么是单例模式
单列模式是保证在内存之中只有一个实例
单列模式的八种写法
- 第一种写法饿汉式 类加载到内存后,就实例化一个单例,JVM保证线程安全。简单实用,推荐使用!缺点:不管用到与否,类装载时就完成实例化
public class Mgr01 {
private static final Mgr01 INSTANCE = new Mgr01();
private Mgr01() {
};
public static Mgr01 getInstance() {
return INSTANCE;
}
public static void main(String[] args) {
Mgr01 m1 = Mgr01.getInstance();
Mgr01 m2 = Mgr01.getInstance();
System.out.println(m1 == m2);
}
}
- 第二种写法 饿汉式,跟第一种一样,只是放在静态代码快加载
public class Mgr02 {
private static final Mgr02 INSTANCE;
static {
INSTANCE = new Mgr02();
}
private Mgr02() {
};
public static Mgr02 getInstance() {
return INSTANCE;
}
public static void main(String[] args) {
Mgr02 m1 = Mgr02.getInstance();
Mgr02 m2 = Mgr02.getInstance();
System.out.println(m1 == m2);
}
}
- 第三种写法 懒汉式就是什么时候用的时候才初始化,虽然达到了按需初始化的目的,但却带来线程不安全的问题
public class Mgr03 {
private static Mgr03 INSTANCE;
private Mgr03() {
}
public

本文详细介绍了Java中实现单例模式的八种方法,包括饿汉式、懒汉式、双检锁/双重校验锁(DCL,即double-checked locking)、静态内部类、枚举等。每种方式都有其优缺点,如饿汉式确保线程安全但可能造成资源浪费,而枚举单例则既安全又防止反序列化问题。
最低0.47元/天 解锁文章
512

被折叠的 条评论
为什么被折叠?



