<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 閱讀(6667) 評論(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="南陽百事通"> 希望能得到您的指點!  回復  更多評論
      
    主站蜘蛛池模板: 一级毛片在线免费视频| 亚洲色av性色在线观无码| 真正全免费视频a毛片| 好吊妞在线新免费视频| 2019亚洲午夜无码天堂| 无码精品A∨在线观看免费| 亚洲黄色网址大全| 少妇无码一区二区三区免费| 亚洲国产精品一区二区第一页| xxxxxx日本处大片免费看| 久久99亚洲综合精品首页 | 亚洲av乱码一区二区三区按摩| 久久久久国色AV免费看图片| 亚洲人成图片网站| 日韩视频在线免费| 免费看又黄又爽又猛的视频软件| 免费精品国产自产拍观看| 一边摸一边爽一边叫床免费视频| 亚洲综合无码精品一区二区三区| 国产一级在线免费观看| 久久久久亚洲精品无码蜜桃 | 最近最新MV在线观看免费高清| 亚洲免费视频观看| 国产伦精品一区二区三区免费迷| 特级毛片在线大全免费播放| 亚洲精品蜜桃久久久久久| 久久九九兔免费精品6| 亚洲GV天堂无码男同在线观看| 亚洲男人av香蕉爽爽爽爽| 无码A级毛片免费视频内谢| 亚洲免费观看在线视频| 亚洲av无码天堂一区二区三区| 你好老叔电影观看免费| 亚洲人成7777影视在线观看| 日韩一级在线播放免费观看| 国产裸体美女永久免费无遮挡| 久久精品国产亚洲AV嫖农村妇女 | 亚洲AV无码成人精品区蜜桃| 免费观看AV片在线播放| 美女被免费网站视频在线| 亚洲国产精品国自产拍AV|