讓人疑惑的代碼,竟成大多公司面試題熱門!
來自:網路
小編今天給大家看的這個筆試題
當年可是火遍大江南北
不妨你先看看到底會不會
這是關於一段令人疑惑的Java代碼
真題在此,誰敢不服
你覺得簡單,那執行一下
真的能如你所願?
一個是true,一個是false!
這是為什麼呢?
和大多數人心裡想的不一樣吧!
心中是不是有一萬個草泥馬?
不少不懂的就裝B去百度了......
這裡給解釋一下:
根據Java編譯機制,.java文件在編譯以後會生成.class文件給JVM載入執行,於是找到.class文件,反編譯看了一下,發現編譯器在編譯我們的代碼時,很調皮(聰明的)的在我們聲明的變數加上了valueOf方法,代碼變成了如下:
valueOf方法的實現原理
我們發現,Integer的作者在寫這個類時,為了避免重複創建對象,對Integer值做了緩存,如果這個值在緩存範圍內,直接返回緩存好的對象,否則new一個新的對象返回,那究竟這個緩存到底緩存了哪些內容呢?看一下IntegerCache這個類:
這是一個內部靜態類,該類只能在Integer這個類的內部訪問,這個類在初始化的時候,會去載入JVM的配置,如果有值,就用配置的值初始化緩存數組,否則就緩存-128到127之間的值。
再來看看我們之前的代碼:
以下代碼執行結果:
看完這個,是不是明白了呢
小編拉你進粉絲微信群
不是在文章評論里回
點擊展開全文


※松本行弘:編程是一生的事業
※解決bug的難度
※1000 贊的程序員高薪職業建議
※你這代碼有問題啊!
TAG:程序員之家 |
※民國七大奇觀之一,最讓人討厭的包辦婚姻竟成了人人羨慕的一段佳話
※被影評人狂懟的瘮人「爛片」,竟成奧斯卡最大遺珠
※此人大字不識一個,被人逼著當上皇帝,最後竟成為一代明君
※坑你沒商量?大數據前我們竟成了「透明人」
※吐槽大會:好好的「傢具照」竟成了「內涵圖」?真相令人笑翻
※這塊商代甲骨,因為上面一個「神秘」的字,竟成為難得的寶貝
※魏延臨死前大喊四個字,成為他的絕句,現竟成了很多人的口頭禪!
※一個毫無實戰經驗的人竟成歷史上最大聯盟的統帥,沒人不服他!
※老公竟成了睡上鋪的兄弟:比無性婚姻更可怕的是這個!
※命案現場,鸚鵡竟成唯一證人!
※曾被吐槽丑的這些「面相」,現竟成了高級特徵?八成女人笑出了聲
※和末代皇后婉容私通的那個人是誰?這個人最後竟成了千萬富翁?
※體香的誘惑有多大?竟成為男女交往的第一標準!
※皇帝給滿人起了一特殊「稱呼」,說漢人不配,後竟成一個罵人的詞
※這個國家的首都竟成了猴城?原來這還是人類的鍋!
※一個目不識丁的人,被人強迫推上帝位,後來竟成為史上公認的明君
※把大米炒一下,竟成了一味葯!趕緊分享給家人!
※打人竟成了一門學術?古代刑罰那麼不講道理的嗎?
※掃碼支付竟成國人專享!為何發達國家卻不喜歡?答案讓人意想不到
※受禪台董卓被殺前高喊的一句話,竟成為眾人流傳的笑柄!