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

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

Java中的整數(shù)緩存

Java中的整數(shù)緩存

慕桂英546537 2019-07-15 16:09:08
Java中的整數(shù)緩存最近,我看到了一個(gè)演示文稿,其中有以下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)在我有點(diǎn)糊涂了。我理解為什么在第一種情況下,結(jié)果是“false”-這是因?yàn)镮nteger是一種引用類型,而“a”和“b”的引用是不同的。但為什么在第二種情況下,結(jié)果是“真實(shí)的”呢?我聽說過一種觀點(diǎn),JVM為int值緩存對象從-128到127,以便進(jìn)行一些優(yōu)化。這樣,“c”和“d”的引用是相同的。有人能給我更多關(guān)于這種行為的信息嗎?我想了解這個(gè)優(yōu)化的目的。在什么樣的情況下性能得到提高等。對這一問題的一些研究將有很大的參考價(jià)值。
查看完整描述

3 回答

?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

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

其目的主要是為了節(jié)省內(nèi)存,這也導(dǎo)致更快的代碼,因?yàn)楦玫木彺嫘省?/trans>

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

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


查看完整回答
反對 回復(fù) 2019-07-15
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

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

編輯:

實(shí)際上-128+127默認(rèn)情況下,如下所示。


查看完整回答
反對 回復(fù) 2019-07-15
?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊

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

查看完整回答
反對 回復(fù) 2019-07-15
  • 3 回答
  • 0 關(guān)注
  • 778 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

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