已采納回答 / Its_forever
<...code...>所以并沒有沖突。你問題中的兩個(gè)instance,第一是在類加載的時(shí)候就存在了,不管你用不用他。第二個(gè)是你需要用instance了,所以調(diào)用了getInstance方法。
2016-01-06
最贊回答 / weibo_SecturityE_0
使用JVM本身機(jī)制保證了線程安全問題;由于 SingletonHolder 是私有的,除了 getInstance() 之外沒有辦法訪問它,因此它是懶漢式的;同時(shí)讀取實(shí)例的時(shí)候不會(huì)進(jìn)行同步,沒有性能缺陷
2015-10-12
最新回答 / AAnonymous
這個(gè)問題好功能上應(yīng)該是可以用全局變量代替單例的但是Java并不建議使用全局變量http://stackoverflow.com/questions/4646577/global-variables-in-java
2015-08-11
已采納回答 / jcoder512
模式,就是指解決問題的一種方式,是經(jīng)過大量實(shí)戰(zhàn)總結(jié)出來的一中通用方案。設(shè)計(jì)模式,就是在實(shí)際開發(fā)工作中,總結(jié)出來的很多種解決不同種類問題的方案,在軟件開發(fā)中,叫做“設(shè)計(jì)模式”。
2015-04-10
最贊回答 / 凌瀾星空
單線程的時(shí)候使用懶漢式,能節(jié)省一點(diǎn)點(diǎn)的內(nèi)存空間,多線程的時(shí)候使用餓漢式,能防止多線程導(dǎo)致的錯(cuò)誤。
2015-02-28
最贊回答 / Tips
老師只在類里面創(chuàng)建了一個(gè)實(shí)例,我只給第一個(gè)(餓漢模式)說明一下:1.老師先在第一步中創(chuàng)建一個(gè)實(shí)例:instance ?????????要說明的是instance相當(dāng)于一個(gè)人的姓名,就像剛出生的孩子我們會(huì)給他取一個(gè)稱呼叫‘張三’,new的一個(gè)實(shí)例(對(duì)象)我們也要給他取一個(gè)名字叫‘instance’.那么我們就可以用instance來確定,它就是那個(gè)新建的實(shí)例。2.然后老師在第三步給出了一個(gè)方法(這是一個(gè)靜態(tài)的開放權(quán)限的方法,可以通過類名直接調(diào)用):這個(gè)方法反回了instance(相當(dāng)于人的名字,而不是那個(gè)具...
2015-01-30
最贊回答 / 伊兮塵昔
餓漢式是線程安全的,在類創(chuàng)建的同時(shí)就已經(jīng)創(chuàng)建好一個(gè)靜態(tài)的對(duì)象供系統(tǒng)使用,以后不在改變??????????懶漢式如果在創(chuàng)建實(shí)例對(duì)象時(shí)不加上synchronized則會(huì)導(dǎo)致對(duì)對(duì)象的訪問不是線程安全的
2014-12-31