java Integer.valueOf()方法
来源:互联网 发布:centos 6.5安装telnet 编辑:程序博客网 时间:2024/05/10 19:39
QQ交流群:335671559
Integer.valueOf()方法实现如下:
public static Integer valueOf(int i) { assert IntegerCache.high >= 127; if (i >= IntegerCache.low && i <= IntegerCache.high) return <span style="color:#ff0000;">IntegerCache</span>.cache[i + (-IntegerCache.low)]; return new Integer(i); }
Integer.valueOf()方法基于减少对象创建次数和节省内存的考虑,缓存了[-128,127]之间的数字。此数字范围内传参则直接返回缓存中的对象。在此之外,直接new出来。
IntegerCache的实现:
private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[]; static { int h = 127; String integerCacheHighPropValue = sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high"); if (integerCacheHighPropValue != null) { int i = parseInt(integerCacheHighPropValue); i = Math.max(i, 127); // Maximum array size is Integer.MAX_VALUE h = Math.min(i, Integer.MAX_VALUE - (-low)); } high = h; cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k < cache.length; k++) cache[k] = new Integer(j++); } private IntegerCache() {} }测试代码
- Integer i1 = Integer.valueOf(12);
- Integer i2 = Integer.valueOf(12);
- Integer i3 = Integer.valueOf(129);
- Integer i4 = Integer.valueOf(129);
- System.out.println(i1==i2);
- System.out.println(i3==i4);
- System.out.println(i1.equals(i2));
- System.out.println(i3.equals(i4));
- System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));
- System.out.println(Integer.valueOf("128")==Integer.valueOf("128"));
- System.out.println(Integer.valueOf("128")==Integer.parseInt("128"));
打印结果如下:
true
false
true
true
true
false
true
false
true
原文:http://blog.csdn.net/randyjiawenjie/article/details/7603427
0 0
- java Integer.valueOf()方法
- java Integer.valueOf()方法
- java Integer.valueOf()方法
- java Integer.valueOf()方法
- java Integer.valueOf()方法
- java Integer.valueOf()方法
- java Integer.valueOf()方法
- java Integer.valueOf()方法
- Integer.valueOf()方法 java
- Integer.valueOf()方法实现
- Integer的valueOf方法
- 【Java】Integer.parseInt() & Integer.valueOf() & new Integer()
- Integer.valueOf(String) 方法出错
- java中Integer.parseInt(),Integer.valueOf(),Integer.getInteger()方法的不同
- JAVA中Integer.parseInt()与Integer.valueOf()
- java中 Integer.parseInt()和Integer.valueOf(“str”).intValue()方法的应用
- java中关于Integer.parseInt(),Integer.valueOf(),Ingeger.getInteger()方法的不同
- Integer中的valueOf方法和parseInt方法
- App Annie
- Linux上安装Mysql时出现错误 , 包冲突 - 解决
- 用Fragment来代替过期的Tabhost和ActivityGroup
- 计算机视觉相关书籍推荐
- HttpSession常见问题
- java Integer.valueOf()方法
- 随笔2014-2-11(2)关于vmware tools出现问题
- 开源74个项目
- Javascript面向对象编程:构造函数的继承
- poj1083
- c++的类型转换
- Qt多线程概述
- Qt 中sax方式 解析 xml文件
- ARC使用心得