<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 閱讀(6650) 評論(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="南陽百事通"> 希望能得到您的指點!  回復  更多評論
      
    主站蜘蛛池模板: 亚洲国产精品高清久久久| 亚洲国产精品狼友中文久久久 | 91精品成人免费国产| 亚洲成人影院在线观看| 精品久久久久亚洲| 一区国严二区亚洲三区| 精品女同一区二区三区免费播放 | 国产免费观看黄AV片| 亚洲大码熟女在线观看| 日本一道高清不卡免费| 中文字幕在线视频免费| 久久精品国产精品亚洲艾草网美妙| 老司机午夜免费视频| 亚洲区不卡顿区在线观看| 一区二区在线视频免费观看| 亚洲福利精品电影在线观看| 亚洲黄片手机免费观看| 亚洲国产精品成人精品无码区| 久久国产高潮流白浆免费观看| 亚洲国产精品综合福利专区| 最新中文字幕电影免费观看| 亚洲欧美成人综合久久久| 国产精品国产午夜免费福利看 | jizz中国免费| 亚洲电影一区二区| 国产a视频精品免费观看| 在线综合亚洲欧洲综合网站| 国产国产人免费视频成69大陆| 麻豆安全免费网址入口| 亚洲AV一宅男色影视| 亚洲成a∧人片在线观看无码| 国产在线观看免费完整版中文版 | 成人午夜免费福利视频| 亚洲欧美日韩国产成人| av在线亚洲欧洲日产一区二区| 午夜影院免费观看| 亚洲av乱码中文一区二区三区| 亚洲人色婷婷成人网站在线观看| 最近免费中文字幕大全免费| 精品亚洲国产成人av| 亚洲AV永久青草无码精品|