最贊回答 / leowei
因?yàn)橹挥袑?duì)象才能調(diào)用equals 方法!剛開始你的對(duì)象是null沒有指向?qū)ο螅膩淼姆椒ò?!equals 是屬于對(duì)象的!?
2016-08-18
最贊回答 / 0x0wh04m1
因?yàn)檫@個(gè)類在加載的時(shí)候就實(shí)例化了,就算thread1和thread2同時(shí)獲取它,取到的是類加載時(shí)實(shí)例化的那個(gè)變量的值,所以說是線程安全的;而懶漢式線程不安全,因?yàn)橛锌赡躷hread1在if(instance==null)判斷為真時(shí)進(jìn)入了if體里但又沒開始實(shí)例化,而這時(shí)thread2也進(jìn)來了,最終就會(huì)有2個(gè)實(shí)例了。
2016-07-29
最新回答 / sunny1334
從第一章的第一節(jié)03分:05秒開始看,應(yīng)用場(chǎng)合:對(duì)象只需要一個(gè);作用:就是保證整個(gè)應(yīng)用程序中某個(gè)實(shí)例有且僅有一個(gè)。
2016-06-03
最贊回答 / 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
最贊回答 / 凌瀾星空
單線程的時(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