Java單例模式(雙重檢查)
阿新 • • 發佈:2018-11-04
今天又想起了單例模式,看了網上好多文章,加鎖和可見性。自己也寫了一遍單例模式。
public class SingleTon { private SingleTon(){ } private static volatile SingleTon singleTon=null; public static SingleTon getInstance(){ if(singleTon==null){ synchronized(SingleTon.class){ if(singleTon==null){ singleTon=new SingleTon(); } } } return singleTon; } }
另外一種實現方式就是內部靜態類。
public class SingleTon2 {
private SingleTon2(){
}
private static class SingleTonHolder{
static SingleTon2 singleTon2=new SingleTon2();
}
public static SingleTon2 getInstance(){
return SingleTonHolder.singleTon2;
}
}