java中的单例模式

    xiaoxiao2023-03-24  4

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

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

        特点:

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

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

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

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

         懒汉模式(默认的)

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

         饥汉模式

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

               评价:

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

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

    转载请注明原文地址: https://ju.6miu.com/read-1200941.html
    最新回复(0)