<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)換,具體過(guò)程由編譯器完成
    比如自動(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è)賮?lái)看Integer緩存,
    下面是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)造什么
    }
    再來(lái)看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免费大片黄在线观看| **俄罗斯毛片免费| 亚洲综合无码精品一区二区三区 | 亚洲国产成人久久综合| 伊人久久亚洲综合影院| 久久免费福利视频| 蜜芽亚洲av无码一区二区三区| 美腿丝袜亚洲综合| 无码国产精品一区二区免费虚拟VR| 成在人线AV无码免费| 中国精品一级毛片免费播放| 亚洲国产精品久久人人爱| 亚洲A∨午夜成人片精品网站| 全免费a级毛片免费看| 亚洲成av人片在线天堂无| 亚洲va久久久噜噜噜久久天堂| 午夜一级免费视频| 一级毛片在线观看免费| 免费的黄网站男人的天堂| 亚洲av无码不卡久久| 国产亚洲精品自在线观看| 成年人在线免费看视频| 无码精品国产一区二区三区免费 | 男女做羞羞的事视频免费观看无遮挡| 美女被免费网站在线视频免费| 亚洲黄色网站视频| 国产成人精品久久亚洲| 成年女人免费碰碰视频| 最近免费中文字幕高清大全| 日韩一级片免费观看| 在线a亚洲老鸭窝天堂av高清| 亚洲国产精品人久久| 亚洲精品99久久久久中文字幕 | 国产一区二区三区免费看| 巨波霸乳在线永久免费视频| 成人妇女免费播放久久久| 亚洲av无码专区在线电影天堂| 亚洲第一网站免费视频| 亚洲精品中文字幕无码蜜桃| 又黄又爽一线毛片免费观看| 亚洲天堂免费在线|