什么是单例设计模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例设计模式的实现方式
- 饿汉式
很饿很着急,所以类加载时即创建实例对象 - 饱汉式
很饱不着急,延迟加载,啥时候用啥时候创建实例,存在线程安全问题 - 静态内部类
内部类在编译完成后也是一个单独的class文件,因此在不使用的情况下Inner类是不会被加载的。同时,JVM保证在类加载的过程中static代码块在多线程或者单线程下都正确执行,且仅执行一次。解决了延迟加载以及线程安全的问题。(推荐)
public class Singleton3 {
private Singleton3() {
}
private static class SingletonHolder {
private static final Singleton3 INSTANCE = new Singleton3();
}
public static Singleton3 getInstance() {
return SingletonHolder.INSTANCE;
}
}