Java单例模式

  • 概述

    由于单例模式只生成一个实例,减少了系统性能开销,保证内存中只存在一个实例
    主要追求三个方面的性能:线程安全、调用效率高、延迟加载

  • 应用场景

    文件系统,一个操作系统只能有一个文件系统
    比如点击登陆系统,只会弹出一个登录框,再点击不会出现同样的登录框
    比如播放音乐,正在播放一首,点击另一首,不会同时播放
    数据库连接池的设计和实现

  • 实现方式

  1. 饿汉式
    

    (1)实现简单、避免了同步问题、实现了线程安全
    (2)在需要实例之前就完成了初始化,在系统中单例场景较多的情况下,会造成内存占用,加载速度慢
    (3)由于在getInstance()之前就已经实例化了,如果需要给getInstance传入参数,将无法实现
   2. 懒汉式
    
       (1)线程不安全,在多线程条件下,多个线程可能同时检测到实例没有初始化从而分别初始化,破坏了单例约束


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务