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

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

    我們再來看Integer緩存,
    下面是IntegerCache類的源碼
    private static class IntegerCache   //定義類名
    {  
        static final int high;  
        static final Integer cache[];   //cache緩存是一個存放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個元素
            int j = low;                            //j的初始值是-128
            for(int k = 0; k < cache.length; k++)   //緩存區(qū)間數(shù)據(jù)   
                cache[k] = new Integer(j++);        //將-128~127包裝成256個對象存入緩存
        }  
        private IntegerCache(){}  //構(gòu)造方法,不需要構(gòu)造什么
    }
    再來看valueOf方法
    public static Integer valueOf(int i)
    {  
        if(i >= -128 && i <= IntegerCache.high)
        {
            //如果i在-128~127之間,就直接在緩存中取出i的Integer類型對象
            return IntegerCache.cache[i + 128];  
        }    
        else
        {
            return new Integer(i);  //否則就在堆內(nèi)存中創(chuàng)建
        }    
    }
    valueOf方法會自動調(diào)用IntegerCache這個類,
    IntegerCache初始化后內(nèi)存中就有Integer緩沖池cache[]了,
    -128~127區(qū)間的int值有其對應(yīng)的的包裝對象
    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 墻頭草 閱讀(285) 評論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    人人游戲網(wǎng) 軟件開發(fā)網(wǎng) 貨運(yùn)專家
    主站蜘蛛池模板: 日韩高清在线高清免费| 少妇性饥渴无码A区免费| 亚洲成年人电影在线观看| a级在线免费观看| 啦啦啦高清视频在线观看免费| 亚洲国产精品热久久| 国内精品免费在线观看| 最近最新中文字幕完整版免费高清 | 国产精品视频永久免费播放| 2019亚洲午夜无码天堂| 妻子5免费完整高清电视| 亚洲中文字幕无码久久综合网| 亚洲sss综合天堂久久久| 中文字幕影片免费在线观看| 中文字幕专区在线亚洲| 亚洲最大的成人网站| 日韩免费高清播放器| 亚洲男人第一av网站| 亚洲毛片免费视频| 亚洲国产精品无码AAA片| 无套内谢孕妇毛片免费看看| 亚洲女人被黑人巨大进入| 亚洲av无码成人精品区一本二本 | 国产成人免费网站在线观看| 国产亚洲精品成人久久网站| 91免费福利精品国产| 亚洲娇小性xxxx| 亚洲av日韩片在线观看| 免费无码一区二区三区蜜桃| 亚洲午夜成激人情在线影院| 国产精品免费福利久久| 中文字幕久久亚洲一区| 最近新韩国日本免费观看 | 亚洲人成在久久综合网站| 日韩免费a级在线观看| 国产在线观看xxxx免费| 亚洲一级免费毛片| 999国内精品永久免费观看| 黄色片网站在线免费观看| 国产精品冒白浆免费视频| 在线观看免费视频网站色|