1、饿汉单例设计模式
特点:不管是否使用都会有一个初始化的实例在内存中,不存在线程安全问题
public class Singleton{ private static Singleton instance=new Singleton(); private Singleton(){} pulic static Singleton getInstance(){ return instance; } }
2、懒汉单例设计模式
特点:实现了延迟加载,但在多线程情况下可能会出现问题,不能保证线程安全(可通过锁机制解决线程安全问题)
public class Singleton{ private static Singleton instance; private Singleton(){} public static sychronized Singleton getInstance(){ if(instance==null)//提高效率 sychronized(Singleton.class){//解决线程安全问题 if(instance==null) instance=new Singleton(); } return instance; } }