java自动装箱之Integer
来源:互联网 发布:网络废旧电子产品回收 编辑:程序博客网 时间:2024/05/19 13:58
Integer inta = 2; //相当于Integer inta = new Integer(2);
Integer intb = 2; //相当于Integer inta = new Integer(2);
System.out.println(inta == intb);//输出将为true
Integer biga = 128; //相当于Integer inta = new Integer(128);
Integer bigb = 128; //相当于Integer inta = new Integer(128);
System.out.println(biga == bigb);//输出将为false;
出现这种结果差别的原因主要是Integer这个类的设计导致的,如java.lang.Integer类的如下源码所示;
static final Integer[] cache = new Integer[-(-128) + 127 + 1];
static {
for (int i=0; i<cache.length; i++)
cache[i] = new Integer[i-128];
}
从上面看来,Integer中将-128到127的Integer对象缓存到了cache数组中;
inta == intb判断时这两个Integer对象实际上都是指向Integer里cache数组中的同一个对象(cache[130]),因此结果为true;
biga == bigb时由于128不再Integer的缓存数组中,因此每次都会重新创建一个新的对象,因而分别指向不同对象的biga和bigb不相等,返回false
- java自动装箱之Integer
- Java中Integer自动装箱误区
- java 之自动装箱自动拆箱
- java自动装箱、拆箱——Integer细节
- Java中Integer的运算,自动装箱机制
- 研究Integer的自动装箱
- Integer的自动装箱过程
- Integer自动装箱拆箱
- Integer对象自动装箱问题
- Integer自动装箱细节分析
- Integer自动装箱的细节
- Integer自动装箱和Integer.valueOf()
- java高新技术之自动装箱拆箱
- Java基础之自动装箱拆箱
- java之自动装箱拆箱
- Integer自动拆箱、自动装箱
- Integer自动装箱、自动拆箱
- int Integer 装箱 拆箱 自动装箱 自动拆箱
- Git常见错误处理
- 从网络中下载的mp3放在mac中,如何放在iphone中听?
- PgSQL · 特性分析 · pg_receivexlog工具解析
- 堆排序原理及算法实现(最大堆)
- CUDA系列学习(四)Parallel Task类型 与 Memory Allocation
- java自动装箱之Integer
- 使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
- 205. Isomorphic Strings | 判断两个字符串形式是否相同
- 关于自动化部署平台的尝试
- 什么是多线程和多进程【转】
- GYM 100247 I. Meteor Flow(贪心)
- HDU2883kebab(离散化+最大流_任务分配)
- 获取当前时间和星期
- 数据库30条军规解读