好处:懒加载,不需要使用synchronized加同步锁。只有在第一次调用的时候才会加载。
原理:静态内部类只有在被调用时才会加载,且类的加载过程是线程保护的所以不存在线程安全问题。而且这个类的实例化是在静态内部类中且使用了final修饰,只能赋值一次,static修饰随着类的加载而加载。
Tips:外部类加载的时候并不会加载内部静态类。
/** * Author:LiuPen Created at 2017/7/3 15:53 * Email:kyunglip1314@163.com * Description: 静态内部类实现单例模式 */ public class SingletonMode { private SingletonMode() { } public static class SingletonHolder { public static final SingletonMode instance = new SingletonMode(); } public static SingletonMode getInstance() { return SingletonHolder.instance; } }