<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    dream.in.java

    能以不變應萬變是聰明人做事的準則。萬事從小事做起,積累小成功,問鼎大成功,是成功者的秘訣。

    自動裝箱trick

    自動裝箱trick

    看以下代碼:

    Integer y = 567;
    Integer x =y;
    System.out.println(y==x);
    y++;
    System.out.println(x+" "+y);
    System.out.println(y==x);

    第一個y==x理所當然的是true了,因為x和y引用了同一個Integer對象。執行y++后,自然y就變成568了,那么在這個時候y==x是什么值呢?如果你認為是true,那就錯了。

    y++這個操作可以分解為3個操作:拆箱、使用、重新裝箱,相當于:

    int x2 = y.intValue();
    x2++;
    y = new Integer(x2);

    因此y在這個時候已經不是引用原來的那個對象,而是引用了一個新的對象了。

    再看一個:
    Integer i1 = 1000;
    Integer i2 = 1000;
    if(i1 != i2) System.out.println("different Object");
    if(i1.equals(i2))System.out.println("meaningfully equal");

    毫無疑問,會打印:
    different Object
    meaningfully equal

    因為i1和i2雖然它們的值相同,但引用的并不是同一個對象。

    然而:
    Integer i3 = 10;
    Integer i4 = 10;
    if(i3 == i4) System.out.println("same Object");
    if(i1.equals(i2))System.out.println("meaningfully equal");

    會打印:
    same Object
    meaningfully equal

    你也許會感到有點暈了吧?這是為什么呢?

    Java里面為了節省內存,對于包裝器的兩個實例,當他們的基本值相同使,它們總是==的關系:

    • Boolean
    • Byte
    • 從\u0000到\u007f的字符串
    • -128到127的Short和Integer


    參考:《SCJP考試指南 310-065》http://blog.csdn.net/ZangXT/archive/2008/11/19/3334030.aspx

    posted on 2009-03-19 00:09 YXY 閱讀(92) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 美女视频黄免费亚洲| 日本高清不卡中文字幕免费| 2022国内精品免费福利视频| 99久久99这里只有免费费精品 | 一级成人a毛片免费播放| 国产亚洲精aa成人网站| 亚洲aⅴ无码专区在线观看| 两个人的视频高清在线观看免费 | 两个人日本WWW免费版| 亚洲日韩在线中文字幕第一页| 亚洲色大情网站www| 日本免费人成黄页网观看视频 | 国产精品久久久久免费a∨| 亚洲熟妇av一区二区三区下载| 久久99精品视免费看| 亚洲黄色免费网站| 成人性生交大片免费看午夜a| 亚洲一卡2卡三卡4卡无卡下载| 日本免费人成黄页网观看视频| 国产成人亚洲精品蜜芽影院| 亚洲国产精品人人做人人爱| 一本久久免费视频| 亚洲色欲色欲综合网站| 亚洲一级免费视频| 亚洲综合精品伊人久久| 亚洲国产成人久久笫一页| 男女午夜24式免费视频| 亚洲国产精品综合久久20| 国产免费观看网站| 十八禁在线观看视频播放免费| 亚洲国产精品网站久久| 国产又粗又长又硬免费视频| 99在线免费视频| 亚洲国产成人va在线观看网址| 国产成人精品免费视频大全五级 | 91亚洲国产在人线播放午夜 | 亚洲中文字幕久久精品无码APP | 亚洲av综合av一区| 亚洲成av人片不卡无码久久| 最近高清中文字幕免费| 男女污污污超污视频免费在线看|