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

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

    我們再來看Integer緩存,
    下面是IntegerCache類的源碼
    private static class IntegerCache   //定義類名
    {  
        static final int high;  
        static final Integer cache[];   //cache緩存是一個存放Integer類型的數組

        static  //初始化
        {  
            final int low = -128;       //最小值是固定的
            int h = 127;                //最大值暫時是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;  //此時high就是127

            cache = new Integer[(high - low) + 1];  //有256個元素
            int j = low;                            //j的初始值是-128
            for(int k = 0; k < cache.length; k++)   //緩存區間數據   
                cache[k] = new Integer(j++);        //將-128~127包裝成256個對象存入緩存
        }  
        private IntegerCache(){}  //構造方法,不需要構造什么
    }
    再來看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);  //否則就在堆內存中創建
        }    
    }
    valueOf方法會自動調用IntegerCache這個類,
    IntegerCache初始化后內存中就有Integer緩沖池cache[]了,
    -128~127區間的int值有其對應的的包裝對象
    java使用該機制是為了達到最小化數據輸入和輸出的目的,這是一種優化措施,提高效率
    其他的包裝器:
    Boolean: (全部緩存)
    Byte:    (全部緩存)

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

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

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


    網站導航:
     
    人人游戲網 軟件開發網 貨運專家
    主站蜘蛛池模板: 亚洲黄色三级视频| 亚洲精品福利网站| 亚洲AV无码欧洲AV无码网站| 国产精品亚洲精品日韩已满| 日韩亚洲Av人人夜夜澡人人爽| 亚洲精品日韩专区silk| 亚洲中文字幕精品久久| 看全免费的一级毛片| 中文字幕版免费电影网站| 222www免费视频| 永久免费看mv网站入口| 亚洲午夜国产片在线观看| 亚洲精品在线观看视频| 四虎必出精品亚洲高清| 成人一级免费视频| 日本在线看片免费人成视频1000 | 特黄特色大片免费| 成人无码精品1区2区3区免费看| 久久午夜羞羞影院免费观看| 午夜视频在线在免费| 国产亚洲老熟女视频| 亚洲国产美女福利直播秀一区二区| 欧美色欧美亚洲另类二区| 亚洲免费观看视频| 四虎成人免费观看在线网址| 国产亚洲精品国看不卡| 亚洲一级毛片免费观看| 一区二区三区视频免费| 四虎在线最新永久免费| 亚洲а∨天堂久久精品| 亚洲视频在线观看网站| 特级毛片A级毛片免费播放| 99久热只有精品视频免费看 | 3344免费播放观看视频| 亚洲AV之男人的天堂| 亚洲无线一二三四区| 一个人看的在线免费视频| 国产麻豆视频免费观看| 区久久AAA片69亚洲| 成人区精品一区二区不卡亚洲| 福利免费在线观看|