能否寫一個單例模式,並且保證例項的唯一性?
阿新 • • 發佈:2019-01-08
這算是Java一個比較核心的問題了,面試官期望你能知道在寫單例模式時應該對例項的初始化與否進行雙重檢查。記住對例項的宣告使用Volatile關鍵字,以保證單例模式是執行緒安全的。下面是一段示例,展示瞭如何用一種執行緒安全的方式實現了單例模式:
public class Singleton { private static volatile Singleton _instance; /** * Double checked locking code on Singleton * @return Singelton instance */ public static Singleton getInstance() { if (_instance == null) { synchronized (Singleton.class) { if (_instance == null) { _instance = new Singleton(); } } } return _instance; } }