<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="南陽百事通"> 希望能得到您的指點!  回復  更多評論
      
    主站蜘蛛池模板: 亚洲日本国产综合高清| 亚洲毛片在线观看| 色噜噜狠狠色综合免费视频| 四色在线精品免费观看| 亚洲中文字幕无码爆乳| 成人毛片免费观看视频| 色九月亚洲综合网| 亚洲精品无码你懂的网站| 在线播放国产不卡免费视频| 久久精品国产亚洲AV不卡| 成av免费大片黄在线观看| 亚洲国产精品乱码一区二区| 999任你躁在线精品免费不卡| 亚洲视频手机在线| 妞干网在线免费视频| 美女被免费视频网站a| 亚洲中文字幕丝袜制服一区| 国产无遮挡裸体免费视频在线观看| 亚洲国产精品久久| 麻豆视频免费播放| 亚洲AV香蕉一区区二区三区| 无码亚洲成a人在线观看| 四虎影库久免费视频| 一级毛片大全免费播放| 亚洲AV无码一区二区乱孑伦AS| 免费观看无遮挡www的小视频| 亚洲欧美不卡高清在线| 日韩在线不卡免费视频一区| 亚洲va成无码人在线观看| 国产gav成人免费播放视频| a级成人毛片免费视频高清| 久久精品国产亚洲av麻豆图片 | av大片在线无码免费| 国产亚洲成av片在线观看| 99热在线观看免费| 激情无码亚洲一区二区三区 | 亚洲国产美女在线观看| 国产乱子伦片免费观看中字| 亚洲欧洲免费视频| 成a人片亚洲日本久久| 91亚洲自偷手机在线观看|