java单例模式

    xiaoxiao2023-11-26  165

    1.懒汉式(单线程不安全)

    class singleton{ private static singleton st; private void singleton() { } public static singleton getSingleton(){ if(st==null){ st=new singleton(); } return st; }

    2多线程保证线程安全

    class singleton{ private static singleton st; private void singleton() { } public static synchronized singleton getSingleton(){ if(st==null){ st=new singleton(); } return st; } }

    3.饿汉式

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

    4静态内部类

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

    5同步锁

    public class Singleton { private static Singleton instance=null; private Singleton(){ } public static Singleton getInstance(){ if(instance==null){ synchronized(Singleton.class){ if(instance==null){ instance=new Singleton(); } } } return instance; } }

     

    最新回复(0)