<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="南陽百事通"> 希望能得到您的指點!  回復  更多評論
      
    主站蜘蛛池模板: 2021在线观看视频精品免费| 午夜在线亚洲男人午在线| 中文字幕免费人成乱码中国| 亚洲AV中文无码乱人伦| 国产精品亚洲专区无码唯爱网| 成人最新午夜免费视频| 亚洲影院在线观看| 99精品视频免费观看| 337p日本欧洲亚洲大胆精品555588| 无码国产精品一区二区免费式芒果| 亚洲国产精品久久久久婷婷软件| 污视频在线观看免费| 7777久久亚洲中文字幕蜜桃| 无码国产精品一区二区免费| 亚洲国产综合精品中文第一| 欧洲精品免费一区二区三区| 国产精品亚洲专区在线播放| 亚洲综合亚洲综合网成人| 国产精品免费一区二区三区四区| 亚洲精品私拍国产福利在线| 免费可以看黄的视频s色| 亚洲欧洲AV无码专区| 亚洲精品视频免费观看| a毛片久久免费观看| 亚洲AV美女一区二区三区| 成年人视频免费在线观看| 亚洲乱码中文字幕在线| 亚洲乱码中文字幕手机在线| 在线播放免费人成毛片乱码| 亚洲国产成人精品无码区在线网站| 啦啦啦手机完整免费高清观看| 成年大片免费视频播放一级| 亚洲电影中文字幕| 成人A级毛片免费观看AV网站| 人碰人碰人成人免费视频| 亚洲人成网www| 国产免费av片在线无码免费看| a级特黄毛片免费观看| 亚洲午夜精品一区二区公牛电影院| 一级毛片直播亚洲| 十九岁在线观看免费完整版电影|