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

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

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

    談笑有鴻儒,往來無白丁

    在恰當?shù)臅r間、地點以恰當?shù)姆绞奖磉_給恰當?shù)娜?..  閱讀的時候請注意分類,佛曰我日里面是談笑文章,其他是各個分類的文章,積極的熱情投入到寫博的隊伍中來,支持blogjava做大做強!向dudu站長致敬>> > 我的微博敬請收聽

    邢紅瑞 發(fā)表于 2007-6-8 16:00:58

    最近給替一個朋友出的幾道java的面試題,主要是面試java高級工程師,報酬就是晚飯,已經(jīng)淪落的賣藝的境地。
    題目很簡單
    ?? Integer i1 = 100;
    ?? Integer i2 = 100;
    ?? Integer i3 = 1000;
    ?? Integer i4 = 1000;
    ?? System.out.println(i1==i2);
    ?? System.out.println(i3==i4);
    很遺憾,沒有一個答對的,正確答案是
    true
    false
    如果面試者寫這樣的寫是錯誤的,就算通過。
    這個的原因要從java5的Boxing和unboxing談起,boxing就是封裝基本類型的對象,unboxing就是轉換對象到基本類型。
    Integer, Long, Float, Double, Short, Character etc.都是這樣的類型他們是immutable。
    Boxing
    在jdk1.4.2中,
    必須是// Assigning primitive type to wrapper type
    ?? Integer iWrapper = new Integer(10);
    java5中
    ?// Assigning primitive type to wrapper type
    ?? Integer iWrapper = 10;
    unboxing
    在jdk1.4.2中,
    int iPrimitive = iWrapper.intValue();
    java5中
    int iPrimitive = iWrapper;
    下面是基本類型作為對象存儲的范圍,
    boolean values true and false
    All byte values
    short values between -128 and 127
    int values between -128 and 127
    char in the range \u0000 to \u007F
    如果int values between -128 and 127,VM使用相同的對象,否則創(chuàng)建新的對象。
    所以這段代碼,大家不要奇怪
    System.out.println(0L == 0);
    System.out.println(((Long)0L).equals(0));
    第二行代碼是0不等于0
    因為大家犯這樣的一個錯誤
    ?static private final String LOCK = "LOCK";
    ? void testMethod() {
    ??? synchronized(LOCK) {
    ??? ...
    ??? }
    ? }
    應該用new,不要直接=,對于int,最好使用int a[0] ,因為array也是對象,不像Integer,a[0]的值可以改變。

    posted on 2007-06-12 22:39 壞男孩 閱讀(5995) 評論(3)  編輯  收藏 所屬分類: java命令學習

    FeedBack:
    # re: java中的Boxing和unboxing
    2007-06-21 10:32 | lang
    過來灌水  回復  更多評論
      
    # re: java中的Boxing和unboxing
    2012-07-17 10:59 | ptzhuf
    在java規(guī)范中有要求 String 不要用new 。。。。。。。
    至于 Integer 和 Boolean 都用 valueOf  回復  更多評論
      
    # re: java中的Boxing和unboxing
    2014-09-26 11:16 | JackJCSN
    @ptzhuf
    這個地方的String 不new的話很可能會被死鎖的,字符串常量是在JVM中共享的,如果別的程序也用了這個字符串常量去加鎖的話很有可能會造成死鎖。
    感覺更安全和簡便的方法是
    static private final Object LOCK = new Object();
    void testMethod() {
    synchronized(LOCK) {
    ...
    }
    }  回復  更多評論
      
    主站蜘蛛池模板: 成年女人A毛片免费视频| 亚洲AV成人片无码网站| 久久免费精品一区二区| 亚洲一区二区三区AV无码| 一级毛片成人免费看a| 亚洲国产中文字幕在线观看| 国产亚洲视频在线| 国产一级高清免费观看| 瑟瑟网站免费网站入口| 亚洲狠狠爱综合影院婷婷| caoporn国产精品免费| 精品久久香蕉国产线看观看亚洲 | 亚洲kkk4444在线观看| 最近中文字幕免费mv视频7| 亚洲乱码无人区卡1卡2卡3| 四虎永久免费地址在线网站| 水蜜桃视频在线观看免费| 最新国产AV无码专区亚洲| 久久成人无码国产免费播放| 亚洲国产精品日韩在线观看| 在线观看免费毛片| 一级毛片不卡免费看老司机| 久久亚洲精品中文字幕三区| 巨波霸乳在线永久免费视频| 久久综合久久综合亚洲| 亚洲国产一区二区三区| 无码国产精品一区二区免费模式| 亚洲精品国产成人| 国产成人高清精品免费软件 | 久久久久亚洲精品天堂| 国产在线a免费观看| 99亚洲乱人伦aⅴ精品| 国产亚洲无线码一区二区| 亚洲一区二区免费视频| 国产亚洲精品欧洲在线观看| 青青草原亚洲视频| 免费能直接在线观看黄的视频 | 黄色免费网址大全| 亚洲精品免费观看| 国产性生交xxxxx免费| 蜜桃成人无码区免费视频网站|