關于Integer緩存解惑

我們先看一段代碼庐舟,很簡單對不對

執(zhí)行一下:


和大多數(shù)人心里想的不一樣吧猪半,好多人還在糾結降铸,到底是全是true還是全是false呀在旱。

然而一個是true晃择,一個是false谒养,這是為什么呢?

有的人根本不去思考乏奥,直接打開百度搜索去查找答案(一個個都是百度首席軟件工程師)

根據(jù)Java編譯機制谅畅,.java文件在編譯以后會生成.class文件給JVM加載執(zhí)行登渣,于是找到.class文件,反編譯看了一下毡泻,發(fā)現(xiàn)編譯器在編譯我們的代碼時胜茧,很調皮(聰明的)的在我們聲明的變量加上了valueOf方法 ,代碼變成了如下:


看一下valueOf方法的實現(xiàn)


我們發(fā)現(xiàn)仇味,Integer的作者在寫這個類時呻顽,為了避免重復創(chuàng)建對象雹顺,對Integer值做了緩存,如果這個值在緩存范圍內芬位,直接返回緩存好的對象无拗,否則new一個新的對象返回,那究竟這個緩存到底緩存了哪些內容呢昧碉?看一下IntegerCache這個類:

這是一個內部靜態(tài)類,該類只能在Integer這個類的內部訪問揽惹,這個類在初始化的時候被饿,會去加載JVM的配置,如果有值搪搏,就用配置的值初始化緩存數(shù)組狭握,否則就緩存-128到127之間的值。

再來看看我們之前的代碼:


結論:我們在比較兩個Integer對象的值時疯溺,無論是怎么聲明的论颅,都一定要使用equals去比較,不能用==囱嫩,在Java中沒有重載操作符這一說恃疯,特別是從其它語言轉到Java的童鞋們要注意。


轉載出自:https://zhuanlan.zhihu.com/p/27562748

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末墨闲,一起剝皮案震驚了整個濱河市今妄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鸳碧,老刑警劉巖盾鳞,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異瞻离,居然都是意外死亡腾仅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門套利,熙熙樓的掌柜王于貴愁眉苦臉地迎上來推励,“玉大人,你說我怎么就攤上這事日裙〈低В” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵昂拂,是天一觀的道長受神。 經常有香客問我,道長格侯,這世上最難降的妖魔是什么鼻听? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任财著,我火速辦了婚禮,結果婚禮上撑碴,老公的妹妹穿的比我還像新娘撑教。我一直安慰自己,他們只是感情好醉拓,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布伟姐。 她就那樣靜靜地躺著,像睡著了一般亿卤。 火紅的嫁衣襯著肌膚如雪愤兵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天排吴,我揣著相機與錄音秆乳,去河邊找鬼。 笑死钻哩,一個胖子當著我的面吹牛屹堰,可吹牛的內容都是我干的。 我是一名探鬼主播街氢,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼扯键,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了阳仔?” 一聲冷哼從身側響起忧陪,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎近范,沒想到半個月后嘶摊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡评矩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年叶堆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斥杜。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡虱颗,死狀恐怖,靈堂內的尸體忽然破棺而出蔗喂,到底是詐尸還是另有隱情忘渔,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布缰儿,位于F島的核電站畦粮,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜宣赔,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一预麸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧儒将,春花似錦吏祸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至两疚,卻和暖如春床估,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诱渤。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谈况,地道東北人勺美。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像碑韵,于是被迫代替她去往敵國和親赡茸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355