優(yōu)缺點說明
1)解決了線程不安全問題
2)效率太低了春缕。每個線程在想獲得類的實例時候贱田,執(zhí)行g(shù)etInstance()方法都要進行同步孟岛。而其實這個方法只執(zhí)行一次實例化代碼就夠了采缚,后面的想獲得該類實例针炉,直接return就行了。方法進行同步效率太低
3)結(jié)論:在實際開發(fā)種扳抽,不推薦使用這種方式
public class SingletonTest03 {
public static void main(String[] args) {
Singleton03 instance = Singleton03.getInstance();
Singleton03 instance01 = Singleton03.getInstance();
System.out.println(instance == instance01);
System.out.println("instance,hashCode= " + instance.hashCode());
System.out.println("instance01,hashCode= " + instance01.hashCode());
}
}
class Singleton03{
private static Singleton03 instance;
private Singleton03(){}
public static synchronized Singleton03 getInstance(){
if(instance == null){
instance = new Singleton03();
}
return instance;
}
}
// 運行結(jié)果
true
instance,hashCode= 1846274136
instance01,hashCode= 1846274136