04.單例-懶漢式 - 雙重校驗
public class Car {
private Car(){}
//volatile 保證變量可見性,屏蔽指令重排序
private volatile static Car instance;
// 獲取單例對象的靜態方法
public static Car getInstance(){
//第一次判斷如果 instance 不為null, 不進入搶鎖階段,直接返回實例
if (instance==null){
synchronized (Car.class){
//第二次判斷,搶到鎖之后再次進行判斷
if (instance==null){
instance =new Car();
}
}
}
return instance;
}
}

浙公網安備 33010602011771號