线程安全的饿汉式单例
//饿汉式:类加载的时候就创建实例对象,所以线程安全
public class Singleton {
private static Singleton singleton=new Singleton();
private Singleton(){};
public static Singleton getSingleton(){
return singleton;
}
}
线程安全的懒汉式模式
//懒汉式:需要用的时候加载对象实例 即延迟加载
//双重锁懒汉式单例:进行双重校验,没有创建对象实例时,加同步锁,故程安全
//当线创建对象实例之后无需加锁,故效率高
public class Singleton {
private static Singleton singleton=null;
private Singleton(){}
public static Singleton getSingleton(){
if(singleton==null){
synchronized(Singleton.class){
if (singleton==null){
singleton=new Singleton();
}
}
}
return singleton;
}
}
注:单例模式是23种设计模式之一,也是最简单最基础的设计模式,单例模式有7种写法,这里只写了其中两种最典型也是笔试常考的写法