1.饿汉模式
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return instance;
}
}
2.懒汉模式
1.懒汉模式-单线程版
public class Singleton1 {
private static Singleton1 instance = null;
public static Singleton1 getInstance(){
if (instance == null){
instance = new Singleton1();
}
return instance;
}
}
2.懒汉模式-多线程版-性能低
ublic class Singleton1 {
private static Singleton1 instance = null;
public synchronized static Singleton1 getInstance(){
if (instance == null){
instance = new Singleton1();
}
return instance;
}
}
3.懒汉模式-多线程版-二次判断-性能高
public class Singleton1 {
private static volatile Singleton1 instance = null;
public static Singleton1 getInstance(){
if (instance == null){
synchronized (Singleton1.class){
if (instance == null){
instance = new Singleton1();
}
}
}
return instance;
}
}