java中的单例模式

本文介绍了单例模式的基本概念,探讨了其在确保程序安全性及资源访问控制方面的作用,并对比了懒汉模式与饥汉模式的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    

    有时候,我们需要这样的一个功能,在整个应用中,我们只允许有一个实例存在,如ppt中我们只允许打开一个窗口,登录windows,只允许有一个登录界面进去。如果我们把窗口当成类,那么其就只有一个实例。

    另外利用单例+同步,我们可以实现在同一时刻,我们只允许有一个线程去访问资源,这样就保证了安全。

    特点:

    1.构造函数要为私有,保证只能有类本身去创建对象

     2.在类中要定义该类的私有的静态的全局变量

     3.通过一个公有的静态方法去返回该单例的实例。


     单例分为懒汉模型和饥汉模式

     懒汉模式(默认的)

     1.思想:在用到该单例的时候便创建对象,可以优化内存的使用

     饥汉模式

    1.思想:在加载类的时候去创建对象,

    
      评价:

       1.懒汉模式去创建单例,在用到单例的时候才创建相应的对象,会影响程序的速度。饥汉模型加载类的时候便会创建对象,其又是静态的,所以占用方法区的静态数区的空间。

       2.懒汉式是不安全的,如果并发的两个线程同时访问单例的getInstance()方法,又没有对该静态方法加同步,就会有两个实例会被创建,不安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值