色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ⅴ在线视频男人的天堂 | 曰批全过程免费视频在线观看无码 | 综合亚洲另类欧美久久成人精品 | 精品无码一区二区三区爱与 | 慈禧一级淫片免费放特级 | 未满岁18禁止在线WWW | 国产精人妻无码一区二区三区牛牛 | 欧美国产成人精品一区二区三区 | 欧美色欧美亚洲高清在线视频 | 久久久噜噜噜久久熟女色 | 好看的喂奶三级 | 三级农村乡下三级播放 | 亚洲国产va精品久久久不卡综合 | 十四以下岁毛片带血a级 | 日本添下边无码视频全过程 | 中文字幕在线观看 | 超薄丝袜足J好爽在线观看 男人的天堂在线视频 | 成全影视在线观看第6季 | 亚洲人成人网站在线观看 | 欧美一卡一卡二卡四卡仙踪林 | 亚洲中文字幕无码一区无广告 | 宝贝张开腿嗯啊高潮了视频 | 在线中文字幕国产 | aⅴ中文字幕不卡在线无码 男人深夜影院 | 亚洲男性天堂 | 色婷婷亚洲婷婷7月 | 激情人妻绿帽王八系列 | H精品动漫在线无码播放 | 日本视频免费在线 | 国产在视频线在精品视频2020 | 中国一级黄色大片 | 欧美一区二区三区久久久久久桃花 | 别揉我奶头~嗯~啊~视频免费网站 | 国产精品色情国产三级在 | 午夜无遮挡男女啪啪免费软件 | 激情内射人妻1区2区3区 | 无码成人中文字幕不卡 | 亚洲人片在线观看天堂无码 | 亚洲AV无码一区东京热蜜芽 | 樱桃视频大全免费高清版 | 青青青手机频在线观看 |