色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Java自動裝箱和拆箱原理分析

Java自動裝箱和拆箱原理分析 時間:2018-09-21      來源:未知

1.Java封裝類

對于簡單類型數據,為了和Java面向對象的思想一致,Java對它們進行了封裝,使它們都有相應的封裝類

 

 

2.Java自動裝箱和拆箱定義

Java 1.5中引入了自動裝箱和拆箱機制:

自動裝箱:把基本類型用它們對應的引用類型包裝起來,使它們具有對象的特質,可以調用toString()、hashCode()、getClass()、equals()等方法。

Integer a=3;//這是自動裝箱

其實編譯器調用的是static Integer valueOf(int i)這個方法,valueOf(int i)返回一個表示指定int值的Integer對象,那么就變成這樣:

Integer a=3; => Integer a=Integer.valueOf(3);

拆箱:跟自動裝箱的方向相反,將Integer及Double這樣的引用類型的對象重新簡化為基本類型的數據。

int i = new Integer(2);//這是拆箱

編譯器內部會調用int intValue()返回該Integer對象的int值 注意:自動裝箱和拆箱是由編譯器來完成的,編譯器會在編譯期根據語法決定是否進行裝箱和拆箱動作。

一個簡單的例子

1. Integer integer1 = 100;

2. Integer integer2 = 100;

3. System.out.println("integer1==integer2: " + (integer1 == integer2));// true 自動裝箱的兩個緩存中的 Integer對象的引用比較

4. System.out.println("integer1.equals(integer2): " + (integer1.equals(integer2)));// true

5. System.out.println("integer1.compare(integer2): " + integer1.compareTo(integer2));// 0

6. Integer integer3 = 200;

7. Integer integer4 = 200;

8. System.out.println("integer3==integer4: " + (integer3 == integer4));// false 自動裝箱的兩個new Integer的引用比較

9. System.out.println("integer3>integer4: " + (integer3 > integer4)); // false 將兩個對象拆箱,再比較大小

10. System.out.println("integer3.equals(integer4): " + (integer3.equals(integer4)));// true

11. System.out.println("integer3.compare(integer4): " + integer3.compareTo(integer4));// 0

12. Integer integer5 = new Integer(100);

13. Integer integer6 = new Integer(100);

14. System.out.println("integer5==integer6: " + (integer5 == integer6)); // false 兩個不同的Integer對象引用的比較

15. System.out.println("integer5.equals(integer6): " + (integer5.equals(integer6)));// true

16. System.out.println("integer5.compare(integer6): " + integer5.compareTo(integer6));// 0

17. int int1 = 100;

18. System.out.println("integer1==int1: " + (integer1 == int1));// true Integer緩存對象拆箱后與int比較

19. System.out.println("integer1.equals(int1): " + (integer1.equals(int1)));// true

20. System.out.println("integer1.compare(int1): " + integer1.compareTo(int1));// 0

21. int int2 = 200;

22. System.out.println("integer3==int2: " + (integer3 == int2));// true Integer對象拆箱后與int比較

23. System.out.println("integer3.equals(int2): " + (integer3.equals(int2)));// true

1. System.out.println("integer3.compare(int2): " + integer3.compareTo(int2));// 0

3.源碼分析

1. public static Integer valueOf(inti) {

2. if(i >= -128 &&i <=IntegerCache.high)

3. return IntegerCache.cache[i + 128];

4. else

5. return new Integer(i);

6. }

IntegerCache內部類

1. private static class IntegerCache {static final

2. static final inthigh;

3. static final Integer cache[];

4. 5. static {

6. final int low = -128

7. int h = 127;

8. if (integerCacheHighPropValue !=null) {

9. int i=Long.decode(integerCacheHighPropValue).intValue();

10. i = Math.max(i, 127);

11. h = Math.min(i, Integer.MAX_VALUE - -low);

12. }

13. high = h;

14. cache =new Integer[(high - low) + 1];

15. int j = low;

16. for(int k = 0; k ++)

17. cache[k] =new Integer(j++);

18. }

19. }

用integerCacheHighPropValue變量設置自動裝箱池大小,設置-XX:AutoBoxCacheMax=選項再次測試<3>中代碼

在eclipse中,選中源文件,右鍵Run as—>RunConfiguratio--->Arguments,在VM arguments中做以下設置:

 

 

運行,控制臺報錯:Unrecognized VM option 'AutoBoxCacheMax=256'

找到JAVA_HOME/jre/lib/i386/jvm.cfg, 只需要把-server和-clent換個位置就行了.

上一篇:c-v關鍵字

下一篇:制作SD卡android文件系統

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 国精品人妻无码一区二区三区软件 | 一级黄a视频 | 看国产黄大片在线观看 | 欧美性猛交xxx嘿人猛交 | 19禁无遮挡啪啪无码网站性色 | 亚洲av成人一区二区三区在线观看 | 波多野结衣中文字幕在线视频 | 波多资源在线中文字幕 | 国产网站免费看 | 欧美精品无码一区二区三区老鸭窝 | 好紧好爽好湿别拔出来动态图 | 亚洲精品无码午夜福利中文字幕 | 新香蕉少妇视频网站 | 久久SE精品一区精品二区国产 | 两个人日本WWW免费版 | 欧美三根一起进三p | 香港三级韩国三级日本三级国产 | 中文字幕亚洲欧美 | 欧美黑人粗暴多交高潮水最多 | 国产日产久久高清欧美一区 | 午夜精品久久久久久久四虎 | 天体野营在线 | 精品国内在视频线2019 | bbox撕裂bass俄罗斯 | 夜夜影院未满十八勿进 | 国产亚洲精品久久yy5099 | 国产区中文字幕 | 国产精品偷伦视频观看免费 | 囯产精品久久久久久久久久妞妞 | 欧美成人aaaaa片 | 按摩高潮A片一区二区三区 久久亚洲精品无码Va白人极品 | 精品亚洲国产成人 | 日本一区二区三区精品视频在线观看 | 欧美网站免费观看在线 | av涩涩 | 免费人妻无码不卡中文字幕系 | 黄黄的网站在线观看 | 成人精品一区二区三区在线观看 | 国产男女性潮高清免费网站 | 色噜噜久久综合伊人一本 | 国产在线精品一区二区高清不卡 |