# 单例模式

单例模式

简介:

​ 单例模式为了节省系统资源,把一个实例化的资源不回收,想用直接调用就可以,节省了创建和回收的过程,提高了系统开发的效率

线程安全:

​ 多线程下要保证被实例化一次

高性能:

延迟加载:

有七种

饿汉式

class King {
    private static final King kingInstance = new King();

    static King getInstance() {
        return kingInstance;
    }

    private King() {
    }
} 
/**
*1.线程安全性保证: private static final King kingInstance = new King();
*JVM 加载class时有一个ClassLoader有一个主动加载和被动加载 new SIngleton01()主动加载<clinit>
*在编译阶段把所有的赋值操作记入到里面)///只能运行一次保证了同步///
*/

(private:外界调用不了)

懒汉式

class king {
        private Test() {
        }
        public static Test instance = null;
        public static Test getInstance() {
                if (instance == null) {
              //多个线程判断instance都为null时,在执行new操作时多线程会出现重复情况
                        instance = new Singleton2();
                }
                return instance;
        }
}
/**
*1.单线程安全多线程不安全
*在编译阶段把所有的赋值操作记入到里面)///只能运行一次保证了同步///
*2.性能: 用的时候实例化他不用的时候为空 性能比懒汉式好
*3延迟加载:延迟加载
*/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容