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

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

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

    隨筆-34  評(píng)論-1965  文章-0  trackbacks-0

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

    以下三段代碼的輸出分別是什么?為什么會(huì)有這樣的結(jié)果?

    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 }

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

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

    評(píng)論:
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題 2009-07-09 21:28 | Gordon
    剛剛看了一下編譯后的文件:
    1.System.out.println((Integer)null); // 結(jié)果null
    2.System.out.println(((Integer)null).intValue());// NullPointerException
    3.System.out.println((Integer)null);// null  回復(fù)  更多評(píng)論
      
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題 2009-07-09 22:02 | 321
    無(wú)聊,這不是廢話嗎?System.out.println(((Integer)null).intValue());// NullPointerException本身就是null,你調(diào)用他當(dāng)然異常了  回復(fù)  更多評(píng)論
      
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題[未登錄](méi) 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

    確是啊,我開(kāi)始還以為是toString()出的錯(cuò)呢  回復(fù)  更多評(píng)論
      
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題 2009-07-10 16:56 | 細(xì)粒度權(quán)限管理
    呵呵,這個(gè)題目有意思。給SCJP投稿吧~~~  回復(fù)  更多評(píng)論
      
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題 2009-07-13 01:01 | pentiumao
    這是java三元條件表達(dá)式的特性,當(dāng)?shù)诙€(gè)和第三個(gè)表達(dá)式中有一個(gè)是基本數(shù)據(jù)類型的封裝類(比如Integer),而另一個(gè)是基本數(shù)據(jù)類型,剛好第一個(gè)選擇條件是選擇封裝類這個(gè)表達(dá)式的話,那么就會(huì)進(jìn)行強(qiáng)制拆包成其對(duì)應(yīng)的基本數(shù)據(jù)類型(比如int),如果恰好此時(shí)是空對(duì)象,拆包過(guò)程自然就會(huì)產(chǎn)生空指針異常了。當(dāng)然還有很多其它規(guī)則,可以參考一下Java語(yǔ)言聲明。  回復(fù)  更多評(píng)論
      
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題 2009-07-13 11:43 | 蟲(chóng)蟲(chóng)
    收藏了!  回復(fù)  更多評(píng)論
      
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題 2009-07-13 16:15 | 某狼
    記得null可以強(qiáng)制轉(zhuǎn)化成任何對(duì)象,之前也寫(xiě)過(guò)類似的代碼  回復(fù)  更多評(píng)論
      
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題 2009-07-21 15:53 | dongni
    你的代碼編譯可以通過(guò)啊  回復(fù)  更多評(píng)論
      
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題 2009-08-18 16:39 | 必記未讀
    看來(lái)自動(dòng)裝、拆箱也不總是好的。帶來(lái)便捷的同時(shí)也帶來(lái)了麻煩。  回復(fù)  更多評(píng)論
      
    # re: 今天工作的時(shí)候,想到的一個(gè)問(wèn)題 2009-11-14 00:28 | 南陽(yáng)百事通
    我的站<a href="www.nybst.net" title="南陽(yáng)百事通"> 希望能得到您的指點(diǎn)!我的站<a href="www.nybst.net" title="南陽(yáng)百事通"> 希望能得到您的指點(diǎn)!  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲乱码国产乱码精华| 亚洲日本在线观看| 亚洲av成人一区二区三区观看在线| 最近免费最新高清中文字幕韩国| 亚洲精品卡2卡3卡4卡5卡区| 一个人免费播放在线视频看片| 免费人成视频x8x8入口| 美女被暴羞羞免费视频| 亚洲国产综合人成综合网站| 曰批全过程免费视频免费看 | 免费大片黄在线观看yw| 亚洲伦理中文字幕| 黄网址在线永久免费观看 | 成年女人毛片免费视频| 亚洲AV无码一区二区三区网址 | 免费看国产精品3a黄的视频| 亚洲熟妇成人精品一区| 国产美女无遮挡免费网站| 国内成人精品亚洲日本语音| 亚洲午夜精品一级在线播放放| 国产在线播放线91免费 | 亚洲三级在线免费观看| 插B内射18免费视频| 国产一区二区三区亚洲综合 | 国产99视频精品免费观看7| 亚洲欧美综合精品成人导航| 亚洲一本大道无码av天堂| 中文字幕乱码免费看电影| 久久狠狠高潮亚洲精品| 在线观看日本免费a∨视频| 国产精品无码亚洲一区二区三区| 亚洲国产精品第一区二区三区| 久久精品成人免费看| 亚洲国产品综合人成综合网站| 四虎1515hm免费国产| 成在人线av无码免费高潮喷水 | 亚洲成在人线在线播放无码 | 国产精品1024永久免费视频| 国产成人精品亚洲| 久久精品国产69国产精品亚洲| 国产免费AV片在线播放唯爱网|