//饿汉式
public class Singelton{
private static Singelton uniqueInstance = new Singleton();
private Singleton (){
}
public static Singelton getUniqueInstance (){
return uniqueInstance;
}
}
//懒汉式线程不安全
public class Singleton{
private static Singleton uniqueInstance ;
private Singleton(){
}
public static Singleton getUniqueInstance(){
if(uniqueInstance ==null){
uniqueInstace = new Singleton();
}
return uniqueInstance;
}
}
//懒汉式线程安全
public class Singleton{
private static Singleton uniqueInstance ;
private Singleton(){
}
public static synchronized Singleton getUniqueInstance(){
if(uniqueInstance ==null){
uniqueInstace = new Singleton();
}
return uniqueInstance;
}
}
// 双重检验锁实现对象单例(线程安全)
pubilc class Singleton{
private volatile static Singleton uniqueInstance;
private Singleton(){
}
public static Singleton getUniqueInstance(){
if(uniqueInstance == null){
synchronized(Singleton.class){
if(uniqueInstance == null){
Singleton uniqueInstace = new Singleton ();
}
}
}
return uniqueInstance;
}
}
// 静态内部类
public class Singleton{
private static class SingleHolder{
public static final Singleton INSATANCE = new Singleton();
}
private Singleton(){
}
public static Singleton getUniqueInstance (){
return SingleHolder.INSTANCE;
}
}
// 枚举
public enum Singleton {
INSTANCE;
}