java Integer.valueOf()方法
2016-03-23 09:29
567 查看
java Integer.valueOf()方法
标签: javaintegercacheclass测试2012-05-25 22:22 7755人阅读 评论(2) 收藏 举报
分类:
java学习(18)
版权声明:本文为博主原创文章,未经博主允许不得转载。
Integer.valueOf()方法实现如下:
[java] view
plain copy
public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
}
Integer.valueOf()方法基于减少对象创建次数和节省内存的考虑,缓存了[-128,127]之间的数字。此数字范围内传参则直接返回缓存中的对象。在此之外,直接new出来。
IntegerCache的实现:
[java] view
plain copy
private static class IntegerCache {
private IntegerCache(){}
static final Integer cache[] = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Integer(i - 128);
}
}
测试代码
[java] view
plain copy
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));
打印结果如下:
true
false
true
true
相关文章推荐
- UIScrollerView常见属性
- 《iOS Human Interface Guidelines》——Date Picker
- 如何知道自己设备的UUID
- UITabBarController简单介绍
- PDE7 wave equation: intuition
- 创建UIWindow
- APUE之线程初探
- Android Handler机制 (一个Thead中可以建立多个Hander,通过msg.target保证MessageQueue中的每个msg交由发送message的handler进行处理 ,但是
- 在Android子线程中初始化handler后,为什么该子线程也能更新UI?
- lightoj 1081 - Square Queries 【二维线段树】
- OpenCV3学习笔记-HighGUI初步
- 自定义UITabBar(仿微博)
- daily questions
- Flat - Music scores and guitar tabs editor(乐谱编辑器)
- UI编辑
- 如何处理php服务器端requires ext-gd 报错?
- leetcode 187. Repeated DNA Sequences
- 2、贪婪算法例子 parvalue(找零钱)
- Grub Rescue 修复引导
- POJ 1679 The Unique MST (次小生成树)