在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美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
    +關注

    關注

    19

    文章

    2973

    瀏覽量

    104910
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137252

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

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

收藏 人收藏

    評論

    相關推薦

    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 ?307次閱讀
    【迅<b class='flag-5'>為</b>電子】龍芯LS2K<b class='flag-5'>1000</b>LA和LS2K<b class='flag-5'>1000</b>有何區別?

    【北京迅】itop-龍芯2k1000開發指南Linux基礎入門vim 編輯器

    【北京迅】itop-龍芯2k1000開發指南Linux基礎入門vim 編輯器
    的頭像 發表于 10-25 14:56 ?333次閱讀
    【北京迅<b class='flag-5'>為</b>】itop-龍芯2k<b class='flag-5'>1000</b>開發指南Linux基礎入門vim 編輯器

    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

    是否可以將默認configTICK_RATE_HZ 100Hz更改為1000Hz?

    我需要 1 毫秒的計時器精度,最好不使用硬件計時器。 是否可以將默認configTICK_RATE_HZ 100Hz 更改為 1000Hz?
    發表于 07-10 07:36

    配備銅纜和光纖接口的 DP83869HM 高抗擾性 10/100/1000以太網物理層收發器數據表

    電子發燒友網站提供《配備銅纜和光纖接口的 DP83869HM 高抗擾性 10/100/1000以太網物理層收發器數據表.pdf》資料免費下載
    發表于 06-27 09:45 ?0次下載
    配備銅纜和光纖接口的 DP83869HM 高抗擾性 10/<b class='flag-5'>100</b>/<b class='flag-5'>1000</b>以太網物理層收發器數據表

    DP83867E/IS/CS穩健型高抗擾性小型10/100/1000以太網物理層收發器數據表

    電子發燒友網站提供《DP83867E/IS/CS穩健型高抗擾性小型10/100/1000以太網物理層收發器數據表.pdf》資料免費下載
    發表于 06-19 15:08 ?0次下載
    DP83867E/IS/CS穩健型高抗擾性小型10/<b class='flag-5'>100</b>/<b class='flag-5'>1000</b>以太網物理層收發器數據表

    DP83867IR/CR穩健型高抗擾性10/100/1000以太網物理層收發器數據表

    電子發燒友網站提供《DP83867IR/CR穩健型高抗擾性10/100/1000以太網物理層收發器數據表.pdf》資料免費下載
    發表于 06-19 15:06 ?0次下載
    DP83867IR/CR穩健型高抗擾性10/<b class='flag-5'>100</b>/<b class='flag-5'>1000</b>以太網物理層收發器數據表

    溫度傳感器PT1000工作原理是什么

    PT1000定義 PT1000是一種鉑電阻溫度傳感器,其電阻值隨溫度的變化變化。PT是Platinum的縮寫,1000表示在0℃時,其電阻值
    的頭像 發表于 06-19 14:14 ?5522次閱讀

    智嵌物聯100/1000BASE-T1千兆車載以太網交換機

    ZQWL-AES6502是智嵌物聯自主研發生產的一款2+5端口千兆車載以太網(100/1000BASE-T1)交換機。具有2個RJ45千兆網口(100BASE-Tx/1000BASE-
    的頭像 發表于 06-06 09:29 ?1214次閱讀
    智嵌物聯<b class='flag-5'>100</b>/<b class='flag-5'>1000</b>BASE-T1千兆車載以太網交換機

    1000兆網線和100兆網線壓線區別大嗎

    1000兆網線和100兆網線在壓線方面存在一些差異,但具體差異大小取決于網線的類型和制作工藝。 首先,1000兆網線通常采用的是六類網線或超五類網線,
    的頭像 發表于 04-02 10:22 ?628次閱讀

    康謀產品 | 用于100/1000BASE-T1網絡的車載以太網開發工具

    1000可將100/1000BASE-T1信號轉換為100BASE-TX/1000BASE-T以太網。 一、NETLion
    的頭像 發表于 01-23 17:32 ?408次閱讀
    康謀產品 | 用于<b class='flag-5'>100</b>/<b class='flag-5'>1000</b>BASE-T1網絡的車載以太網開發工具
    主站蜘蛛池模板: 天天操天天弄| 天天干影院| 狠狠色欧美亚洲狠狠色www| 人碰人操| 欧美日韩国产一区| 欧美第一网站| 黄色视屏日本| 一区二区三区四区无限乱码在线观看| 午夜小影院| 天天干夜夜添| 久久99爱爱| 特级毛片s级全部免费| 喷潮白浆| 午夜啪啪片| 亚洲一卡2卡4卡5卡6卡在线99| 日韩亚射吧| 一二三区在线视频| 在线免费视频你懂的| 五月婷婷综合色| 欧美特级生活片| 韩国朴银狐诱感在线观看| 7777在线| 久久国产香蕉视频| 男人的视频网站| 日本人xxxxxxxxxⅹ68| rrr523亚洲国产片| 成人二区| 拍真实国产伦偷精品| 国产特级毛片aaaaaa毛片| 精品视频日本| 91新地址| 黄色一区二区三区| 亚洲一二| 四虎最新网| 韩国床戏合集三小时hd中字| 午夜久久久精品| 天天色国产| 超黄视频在线观看| 国产叼嘿视频网站在线观看| 色多多在线视频| 日本高清网站|