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

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

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

    隨筆-34  評論-1965  文章-0  trackbacks-0

    今天工作的時候,幫同事看一個BUG,突然想到一個問題,大家如果有興趣的話,不妨也想一下答案吧。

    以下三段代碼的輸出分別是什么?為什么會有這樣的結果?

    1 public class BoxingTest {
    2 
    3     public static void main(String[] args) {
    4         System.out.println(true ? null : 0);
    5     }
    6 
    7 }

    1 public class BoxingTest {
    2     
    3     public static void main(String[] args) {
    4         System.out.println(true ? (Integer) null : 0);
    5     }
    6     
    7 }

    1 public class BoxingTest {
    2 
    3     public static void main(String[] args) {
    4         System.out.println(true ? (Integer) null : new Integer(0));
    5     }
    6 
    7 }

    想知道答案的話,自己動手試一下吧。:-)

    posted on 2009-07-09 20:42 Max 閱讀(6652) 評論(10)  編輯  收藏 所屬分類: 方法與技巧(Tips & tricks)

    評論:
    # re: 今天工作的時候,想到的一個問題 2009-07-09 21:28 | Gordon
    剛剛看了一下編譯后的文件:
    1.System.out.println((Integer)null); // 結果null
    2.System.out.println(((Integer)null).intValue());// NullPointerException
    3.System.out.println((Integer)null);// null  回復  更多評論
      
    # re: 今天工作的時候,想到的一個問題 2009-07-09 22:02 | 321
    無聊,這不是廢話嗎?System.out.println(((Integer)null).intValue());// NullPointerException本身就是null,你調用他當然異常了  回復  更多評論
      
    # re: 今天工作的時候,想到的一個問題[未登錄] 2009-07-10 11:19 | wonder
    @321
    0: getstatic #16; //Field java/lang/System.out:Ljava/io/PrintStream;
    3: aconst_null
    4: invokevirtual #22; //Method java/lang/Integer.intValue:()I
    7: invokevirtual #28; //Method java/io/PrintStream.println:(I)V

    確是啊,我開始還以為是toString()出的錯呢  回復  更多評論
      
    # re: 今天工作的時候,想到的一個問題 2009-07-10 16:56 | 細粒度權限管理
    呵呵,這個題目有意思。給SCJP投稿吧~~~  回復  更多評論
      
    # re: 今天工作的時候,想到的一個問題 2009-07-13 01:01 | pentiumao
    這是java三元條件表達式的特性,當第二個和第三個表達式中有一個是基本數據類型的封裝類(比如Integer),而另一個是基本數據類型,剛好第一個選擇條件是選擇封裝類這個表達式的話,那么就會進行強制拆包成其對應的基本數據類型(比如int),如果恰好此時是空對象,拆包過程自然就會產生空指針異常了。當然還有很多其它規則,可以參考一下Java語言聲明。  回復  更多評論
      
    # re: 今天工作的時候,想到的一個問題 2009-07-13 11:43 | 蟲蟲
    收藏了!  回復  更多評論
      
    # re: 今天工作的時候,想到的一個問題 2009-07-13 16:15 | 某狼
    記得null可以強制轉化成任何對象,之前也寫過類似的代碼  回復  更多評論
      
    # re: 今天工作的時候,想到的一個問題 2009-07-21 15:53 | dongni
    你的代碼編譯可以通過啊  回復  更多評論
      
    # re: 今天工作的時候,想到的一個問題 2009-08-18 16:39 | 必記未讀
    看來自動裝、拆箱也不總是好的。帶來便捷的同時也帶來了麻煩。  回復  更多評論
      
    # re: 今天工作的時候,想到的一個問題 2009-11-14 00:28 | 南陽百事通
    我的站<a href="www.nybst.net" title="南陽百事通"> 希望能得到您的指點!我的站<a href="www.nybst.net" title="南陽百事通"> 希望能得到您的指點!  回復  更多評論
      
    主站蜘蛛池模板: 国产精品亚洲综合一区| 精品亚洲成a人片在线观看少妇| 朝桐光亚洲专区在线中文字幕| 亚洲Av综合色区无码专区桃色| 亚洲综合精品网站| 亚洲韩国在线一卡二卡| 狠狠入ady亚洲精品| 福利免费在线观看| 在线免费观看一级片| 久久久久亚洲av无码尤物| 美女免费视频一区二区| 黄色一级免费网站| 亚洲第一区精品日韩在线播放| 国产成人99久久亚洲综合精品| 亚洲欧洲一区二区| 一区二区三区免费看| 天天摸天天碰成人免费视频| 亚洲娇小性xxxx色| 1000部羞羞禁止免费观看视频| 国内精品乱码卡1卡2卡3免费| 最近免费中文字幕大全视频 | 搡女人免费视频大全| 亚洲爆乳AAA无码专区| 妻子5免费完整高清电视| 国产日韩成人亚洲丁香婷婷| 国产午夜精品理论片免费观看 | 午夜免费国产体验区免费的| 成年18网站免费视频网站| 亚洲人成网站在线在线观看| 四虎国产精品免费久久| 亚洲国产精品午夜电影| 午夜视频在线免费观看| 亚洲国产精品一区二区成人片国内 | 香蕉视频在线免费看| 亚洲国产一级在线观看| 色偷偷亚洲男人天堂| 亚洲桃色AV无码| 在线观看片免费人成视频播放| 日韩亚洲国产高清免费视频| 亚洲精品无码久久久久秋霞| 2015日韩永久免费视频播放 |