静态内部类实现单例模式

好处:懒加载,不需要使用synchronized加同步锁。只有在第一次调用的时候才会加载。

原理:静态内部类只有在被调用时才会加载,且类的加载过程是线程保护的所以不存在线程安全问题。而且这个类的实例化是在静态内部类中且使用了final修饰,只能赋值一次,static修饰随着类的加载而加载。

Tips:外部类加载的时候并不会加载内部静态类。

/**
 * Author:LiuPen Created at 2017/7/3 15:53
 * Email:[email protected]
 * Description: 静态内部类实现单例模式
 */

public class SingletonMode {

    private SingletonMode() {

    }

    public static class SingletonHolder {
        public static final SingletonMode instance = new SingletonMode();
    }

    public static SingletonMode getInstance() {
        return SingletonHolder.instance;
    }
}

你可能感兴趣的:(设计模式)