91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么Java中1000==1000為false,而100==100為true呢

數據分析與開發 ? 來源:數據分析與開發 ? 作者:codeceo ? 2020-11-19 15:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為什么 Java 中“1000==1000”為false,而”100==100“為true? 這是一個挺有意思的討論話題。 如果你運行下面的代碼:

Integera=1000,b=1000; System.out.println(a==b);//1 Integerc=100,d=100; System.out.println(c==d);//2

你會得到

false true

基本知識:我們知道,如果兩個引用指向同一個對象,用==表示它們是相等的。如果兩個引用指向不同的對象,用==表示它們是不相等的,即使它們的內容相同。

因此,后面一條語句也應該是false 。

這就是它有趣的地方了。

如果你看去看 Integer.java 類,你會發現有一個內部私有類,IntegerCache.java,它緩存了從-128到127之間的所有的整數對象

所以事情就成了,所有的小整數在內部緩存,然后當我們聲明類似——

Integerc=100;

的時候,它實際上在內部做的是:

Integeri=Integer.valueOf(100);

現在,如果我們去看valueOf()方法,我們可以看到

publicstaticIntegervalueOf(inti){ if(i>=IntegerCache.low&&i returnIntegerCache.cache[i+(-IntegerCache.low)]; returnnewInteger(i); }

如果值的范圍在-128到127之間,它就從高速緩存返回實例。

所以…

Integerc=100,d=100;

指向了同一個對象。

這就是為什么我們寫

System.out.println(c==d);

我們可以得到true。

現在你可能會問,為什么這里需要緩存?

合乎邏輯的理由是,在此范圍內的“小”整數使用率比大整數要高,因此,使用相同的底層對象是有價值的,可以減少潛在的內存占用。

然而,通過反射API你會誤用此功能。

運行下面的代碼,享受它的魅力吧

publicstaticvoidmain(String[]args)throwsNoSuchFieldException,IllegalAccessException{ Classcache=Integer.class.getDeclaredClasses()[0];//1 FieldmyCache=cache.getDeclaredField("cache");//2 myCache.setAccessible(true);//3 Integer[]newCache=(Integer[])myCache.get(cache);//4 newCache[132]=newCache[133];//5 inta=2; intb=a+a; System.out.printf("%d+%d=%d",a,a,b);// }

責任編輯:xj

點贊和在看就是最大的支持

原文標題:為什么 Java 中“1000==1000”為false,而”100==100“為true?

文章出處:【微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    20

    文章

    2989

    瀏覽量

    109729
  • C語言
    +關注

    關注

    180

    文章

    7632

    瀏覽量

    141762

原文標題:為什么 Java 中“1000==1000”為false,而”100==100“為true?

文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    VIAVI Xgig 1000 32/128G FC和25/50/100GE以太網分析儀介紹

    VIAVI Xgig1000 32/128G光纖通道和25/50/100G以太網平臺是可解決具有可重構端口的便攜式集成平臺中的8G/16G/32G/128G FC和10/25/50/100GE問題的產品
    的頭像 發表于 03-21 15:37 ?475次閱讀
    VIAVI Xgig <b class='flag-5'>1000</b> 32/128G FC和25/50/<b class='flag-5'>100</b>GE以太網分析儀介紹

    K7815-1000(L) K7815-1000(L)

    電子發燒友網你提供AIPULNION(AIPULNION)K7815-1000(L)相關產品參數、數據手冊,更有K7815-1000(L)的引腳圖、接線圖、封裝手冊、中文資料、英文資料,K7815-
    發表于 03-20 18:34
    K7815-<b class='flag-5'>1000</b>(L) K7815-<b class='flag-5'>1000</b>(L)

    ADAS1000-4 adi

    電子發燒友網你提供ADI(ADI)ADAS1000-4相關產品參數、數據手冊,更有ADAS1000-4的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ADAS1000-4真值表,AD
    發表于 03-10 18:40
    ADAS<b class='flag-5'>1000</b>-4 adi

    ADAS1000-1 adi

    電子發燒友網你提供ADI(ADI)ADAS1000-1相關產品參數、數據手冊,更有ADAS1000-1的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ADAS1000-1真值表,AD
    發表于 03-10 18:39
    ADAS<b class='flag-5'>1000</b>-1 adi

    ADAS1000-3 adi

    電子發燒友網你提供ADI(ADI)ADAS1000-3相關產品參數、數據手冊,更有ADAS1000-3的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ADAS1000-3真值表,AD
    發表于 03-10 18:38
    ADAS<b class='flag-5'>1000</b>-3 adi

    ADAS1000 adi

    電子發燒友網你提供ADI(ADI)ADAS1000相關產品參數、數據手冊,更有ADAS1000的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ADAS1000真值表,ADAS
    發表于 03-10 18:37
    ADAS<b class='flag-5'>1000</b> adi

    ADAS1000-2 adi

    電子發燒友網你提供ADI(ADI)ADAS1000-2相關產品參數、數據手冊,更有ADAS1000-2的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ADAS1000-2真值表,AD
    發表于 03-10 18:37
    ADAS<b class='flag-5'>1000</b>-2 adi

    ADRF6850 100MHz至1000MHz集成寬帶接收機技術手冊

    ADRF6850是一款高度集成的寬帶正交解調器、頻率合成器和可變增益放大器(VGA)。該器件工作在100 MHz至1000 MHz的頻率范圍,適用于窄帶和寬帶通信應用,能夠執行從中頻(IF)直接到基帶頻率的正交解調。
    的頭像 發表于 03-01 10:36 ?486次閱讀
    ADRF6850 <b class='flag-5'>100</b>MHz至<b class='flag-5'>1000</b>MHz集成寬帶接收機技術手冊

    FCTS1000-10-5參考鎖相轉換器Synergy

    -3 dBm。相位噪聲:@ 100 Hz:-80 dBc/Hz。@ 1 kHz:-115 dBc/Hz。@ 10 kHz:-141 dBc/Hz。@ 100 kHz:-158 dBc/Hz
    發表于 02-11 09:29

    ldc1000使用的具體時序是怎樣的

    ldc1000 evm,測得它的波形均是在上跳變接收數據和發送數據,這與ldc1000的芯片手冊的時序圖不同,想問下您ldc1000的使用的具體時序是怎樣的
    發表于 01-13 07:59

    請問LDC1000是否可以測量大線圈?

    我使用TI 提供的 LDC1000EVM 模塊 測量電感線圈(線圈尺寸 1m*0.5m在100khz下 電感量:27uH Rs:0.3歐),并聯電容100pF. 使用TI提供的軟件
    發表于 01-08 07:13

    74ALVC164245是否能支持速率100Mbps的信號轉換

    請幫忙確認74ALVC164245是否能支持速率100Mbps的信號轉換,Datasheet上并沒有找到明確的描述,謝謝!
    發表于 12-11 06:51

    【迅電子】龍芯LS2K1000LA和LS2K1000有何區別?

    【迅電子】龍芯LS2K1000LA和LS2K1000有何區別?
    的頭像 發表于 11-13 14:13 ?748次閱讀
    【迅<b class='flag-5'>為</b>電子】龍芯LS2K<b class='flag-5'>1000</b>LA和LS2K<b class='flag-5'>1000</b>有何區別?

    INA333 RG接100歐不是放大1000倍嗎?怎么輸出才2倍左右?

    RG接100歐不是放大1000倍嗎?怎么輸出才2倍左右?請問要放大1000倍如何接才正確?
    發表于 09-11 07:25

    為什么TLV9002的開環輸出阻抗1200多,TLV9062的開環輸出阻抗100

    為什么TLV9002的開環輸出阻抗1200多? TLV9062的開環輸出阻抗100? 數據差這么多有什么差異嗎?會有什么影響嗎?謝謝!
    發表于 08-14 06:07
    主站蜘蛛池模板: 欧美黑人粗暴另类多交 | 五月激情在线 | 成年男人永久免费看片 | 欧美成人免费大片888 | 欧美另类69xxxxx性欧 | www.毛片在线观看 | 色妞妞网| sao虎在线精品永久 se94se欧美 | 在线亚洲精品中文字幕美乳 | 四虎永久免费网站免费观看 | 正在播放国产女免费 | 免费观看视频高清www | 不卡视频一区二区 | 欧美视频色 | 亚洲精品乱码久久久久久蜜桃图片 | 精品伊人久久大香线蕉网站 | 欧美成人午夜精品一区二区 | 污夜影院 | 久操视频在线观看免费 | 波多野结衣在线观看一区二区三区 | 亚洲一本视频 | 午夜久久精品 | 一级毛片在播放免费 | 国产精品久久久久久久久久妇女 | 在线免费看黄 | 久久婷婷综合五月一区二区 | 国产在线视频www色 国产在线视频欧美亚综合 国产在线视频网站 | 国产丝袜va丝袜老师 | 酒色1314 | 国产1区二区| 1000又爽又黄禁片在线久 | 韩国免费三片在线视频 | 亚洲 成人 欧美 自拍 | 激情综合亚洲 | 欧美日韩中文字幕在线 | 亚洲成片在线观看12345ba | www.91久久| 男女视频在线看 | 免费观看交性大片 | 黑人又大又粗又长又深受不了 | 黄色免费看网站 |