第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教Java中的整數(shù)緩存

請教Java中的整數(shù)緩存

UYOU 2019-10-20 16:08:40
Java中的整數(shù)緩存最近,我看到了一個演示文稿,其中有以下Java代碼示例:Integer a = 1000, b = 1000;  System.out.println(a == b); // false  Integer c = 100, d = 100;  System.out.println(c == d); // true現(xiàn)在我有點糊涂了。我理解為什么在第一種情況下,結(jié)果是“false”-這是因為Integer是一種引用類型,而“a”和“b”的引用是不同的。但為什么在第二種情況下,結(jié)果是“真實的”呢?我聽說過一種觀點,JVM為int值緩存對象從-128到127,以便進行一些優(yōu)化。這樣,“c”和“d”的引用是相同的。有人能給我更多關(guān)于這種行為的信息嗎?我想了解這個優(yōu)化的目的。在什么樣的情況下性能得到提高等。對這一問題的一些研究將有很大的參考價值。
查看完整描述

3 回答

?
小唯快跑啊

TA貢獻1863條經(jīng)驗 獲得超2個贊

我想了解這個優(yōu)化的目的。在什么樣的情況下性能得到提高等。對這一問題的一些研究將有很大的參考價值。

其目的主要是為了節(jié)省內(nèi)存,這也導(dǎo)致更快的代碼,因為更好的緩存效率。

基本上,Integer類的緩存Integer實例的范圍為-128到127,以及所有自動裝箱、文字和使用Integer.valueOf()將從該緩存返回它所涵蓋的范圍的實例。

這是基于這樣的假設(shè),即這些小值比其他int發(fā)生的頻率高得多,因此避免為每個實例設(shè)置不同對象的開銷是有意義的(Integer對象占用大約12個字節(jié))。



查看完整回答
反對 回復(fù) 2019-10-21
?
婷婷同學_

TA貢獻1844條經(jīng)驗 獲得超8個贊

的實現(xiàn)Integer.valueOf(int)..它將返回相同的Integer對象的輸入小于256.

編輯:

實際上-128+127默認情況下,如下所示。



查看完整回答
反對 回復(fù) 2019-10-21
?
慕尼黑8549860

TA貢獻1818條經(jīng)驗 獲得超11個贊

你似乎對什么是“實例”有嚴重的誤解。根本不可能有兩個不同的值“屬于同一個Integer實例”。對象實例基本上是一個內(nèi)存區(qū)域。您可以有多個具有相同值的不同實例,但不能相反。緩存將為不同的值返回不同的實例;它只是確保始終獲得相同值的相同實例。

查看完整回答
反對 回復(fù) 2019-10-21
  • 3 回答
  • 0 關(guān)注
  • 301 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號