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

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

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

    posts - 241,  comments - 116,  trackbacks - 0
    jdk1.5以后
    用Integer舉例
    Integer a = 3;              這是自動(dòng)裝箱
    int     i = new Integer(2); 這是自動(dòng)拆箱
    就是基本類型和其對(duì)應(yīng)的包裝類型在需要的時(shí)候可以互相轉(zhuǎn)換,具體過程由編譯器完成
    比如自動(dòng)裝箱:
    Integer a=3;
    其實(shí)編譯器調(diào)用的是static Integer valueOf(int i)這個(gè)方法
    查閱JDK知道,
    valueOf(int i)返回一個(gè)表示指定的 int 值的 Integer 對(duì)象
    那么就變成這樣: Integer a=3;   =>    Integer a=Integer.valueOf(3);

    對(duì)應(yīng)的  int intValue()  返回該 Integer對(duì)象的int值,是拆箱

    我們?cè)賮砜碔nteger緩存,
    下面是IntegerCache類的源碼
    private static class IntegerCache   //定義類名
    {  
        static final int high;  
        static final Integer cache[];   //cache緩存是一個(gè)存放Integer類型的數(shù)組

        static  //初始化
        {  
            final int low = -128;       //最小值是固定的
            int h = 127;                //最大值暫時(shí)是127
            if (integerCacheHighPropValue != null) //這段if代碼不用深究,是一些判斷,我看得眼花啊
            {  
                int i = Long.decode(integerCacheHighPropValue).intValue();  
                i     = Math.max(i, 127);  
                h     = Math.min(i, Integer.MAX_VALUE - -low);  
            }  
            high = h;  //此時(shí)high就是127

            cache = new Integer[(high - low) + 1];  //有256個(gè)元素
            int j = low;                            //j的初始值是-128
            for(int k = 0; k < cache.length; k++)   //緩存區(qū)間數(shù)據(jù)   
                cache[k] = new Integer(j++);        //將-128~127包裝成256個(gè)對(duì)象存入緩存
        }  
        private IntegerCache(){}  //構(gòu)造方法,不需要構(gòu)造什么
    }
    再來看valueOf方法
    public static Integer valueOf(int i)
    {  
        if(i >= -128 && i <= IntegerCache.high)
        {
            //如果i在-128~127之間,就直接在緩存中取出i的Integer類型對(duì)象
            return IntegerCache.cache[i + 128];  
        }    
        else
        {
            return new Integer(i);  //否則就在堆內(nèi)存中創(chuàng)建
        }    
    }
    valueOf方法會(huì)自動(dòng)調(diào)用IntegerCache這個(gè)類,
    IntegerCache初始化后內(nèi)存中就有Integer緩沖池cache[]了,
    -128~127區(qū)間的int值有其對(duì)應(yīng)的的包裝對(duì)象
    java使用該機(jī)制是為了達(dá)到最小化數(shù)據(jù)輸入和輸出的目的,這是一種優(yōu)化措施,提高效率
    其他的包裝器:
    Boolean: (全部緩存)
    Byte:    (全部緩存)

    Character (   <=127 緩存)
    Short     (-128~127 緩存)
    Long      (-128~127 緩存)

    Float     (沒有緩存)
    Doulbe    (沒有緩存)
    posted on 2012-02-01 10:25 墻頭草 閱讀(276) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    人人游戲網(wǎng) 軟件開發(fā)網(wǎng) 貨運(yùn)專家
    主站蜘蛛池模板: 亚洲国产人成中文幕一级二级| 日韩中文无码有码免费视频| 国产亚洲成av人片在线观看| 特级毛片在线大全免费播放| 日韩免费高清视频网站| 亚洲综合激情五月色一区| 在线v片免费观看视频| 亚洲天堂一区二区三区四区| 久久99精品视免费看| 亚洲欧洲免费视频| 日韩中文字幕免费视频| 亚洲天天做日日做天天欢毛片| 永久免费A∨片在线观看| 亚洲精品乱码久久久久66| a毛片免费全部播放完整成| 国产精品国产亚洲精品看不卡| 两个人的视频www免费| 亚洲精品蜜桃久久久久久| 国产精品免费AV片在线观看| 亚洲国产老鸭窝一区二区三区| 最刺激黄a大片免费网站| 国产成+人+综合+亚洲专| 成人a视频片在线观看免费| 久久亚洲精品无码网站| 亚洲无码日韩精品第一页| 黄色网址在线免费| 亚洲国产成人精品电影| 精品国产免费观看| 国产免费人成视频尤勿视频| 亚洲AV综合色区无码一区爱AV | 亚洲天天做日日做天天欢毛片| 日本一卡精品视频免费| 亚洲中文无码mv| 亚洲欧洲久久av| 久久精品一本到99热免费| 亚洲欧美成人一区二区三区 | 亚洲av无码国产精品夜色午夜| 在线免费观看你懂的| 国产产在线精品亚洲AAVV| 亚洲国产精品福利片在线观看| 无码中文在线二区免费|