→ ssccg: Class物件,每個類別會有一個由ClassLoader載入的 12/05 14:12
→ ssccg: 通常就跟getClass()回傳的是同一個 12/05 14:20
→ ssccg: synchronized static method一樣是鎖這個物件 12/05 14:26
→ v9290026: 第二句秒懂啊,感謝 12/05 14:26
→ v9290026: 所以鎖靜態method,因為不會宣告object,也是鎖該依附的cl 12/05 14:28
→ v9290026: ass意思嗎? 12/05 14:28
→ luoqr: 第一個if可能沒有用? 12/06 07:52
→ bitlife: 有用,避免未來非必要的進入 synchronized block 12/06 08:55
→ luoqr: fortify之類的掃描原始碼工具還會把這種寫法當作有問題 @@ 12/08 21:24
→ luoqr: 但直覺得我是認為多判斷一次null好像比較快 @@ 12/08 21:24
→ ssccg: 要lazy init直接用static inner Holder那招比較好 12/09 10:39
→ ssccg: 由JVM/Classloader處理初始化,連檢查null都不用 12/09 10:42
→ Killercat: 你是說static區塊嘛?大多數的情況來講是對的 12/10 01:26