單例模式應(yīng)用的場(chǎng)景:
(1)資源共享的情況下,避免由于資源操作時(shí)導(dǎo)致的性能或損耗等。如日志文件,應(yīng)用配置。
(2)控制資源的情況下,方便資源之間的互相通信。如線程池等
餓漢式和懶漢式(多線程)
餓漢式:對(duì)象隨著類的加載就在內(nèi)存中開辟了空間,懶漢式:初始為空,當(dāng)調(diào)用時(shí)才實(shí)例化,節(jié)省空間、提高性能
另外需注意:同步中嵌套同步會(huì)造成死鎖,如下圖:
同步鎖locka內(nèi)嵌套同步鎖lockb
注:JDK1.5以后synchronized被lock取代