- 注册时间
- 2015-7-27
- 最后登录
- 2015-12-24
- 阅读权限
- 50
- 积分
- 772
- 精华
- 0
- 帖子
- 212
|
发表于 2015-10-22 15:30:22
|显示全部楼层
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换个位置就行了. |
|