常见单例模式

    科技2022-08-17  106

    常见单例模式

    懒汉式

      线程安全状态,去掉synchronized则线程不安全

    /** * 单例模式 * 实例对象只有一个,没有办法new,因为构造器为private修饰了,只能通过getInstance()方法来获取实例 * getInstance()返回的是一个对象的引用,并不是真的实例 */ class Singleton{ private static Singleton singleton; private Singleton(){} public static synchronized Singleton getInstance(){ if (singleton==null){ singleton=new Singleton(); } return singleton; }

    饿汉式

    public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; } }

    DCL

    package com.company; public class single { public volatile static single INSTANSCE ; private single(){} public static single getInstance(){ if (INSTANSCE==null){ synchronized (single.class){ if (INSTANSCE==null){ INSTANSCE = new single(); } } } return INSTANSCE; } }
    Processed: 0.017, SQL: 9