Integer对象自动装箱问题
来源:互联网 发布:mac魔兽世界7.0插件 编辑:程序博客网 时间:2024/06/10 19:20
请判断下面代码,第7行和第8行,分别输出什么?
结果是第7行true,第8行false
为什么呢?
因为首先我们注意到f1,f2,f3,f4四个变量都是Integer对象引用,所以f1==f2和f3==f4运算比较的不是值而是引用。而装箱的本质是什么呢?当我们给一个Integer对象赋一个int值的时候,java会自动调用Integer.ValueOf()方法,现在我们看看valueOf()方法的源码:
其中IntegerCache是Integer的一个内部类
在这个源码中,我们看到low=-128,high=127,也就是说,当i>=-128&&i<=127时,不会new新的Integer对象,直接引用常量池中的Integer对象,但是当不在-128~127这个范围的时候,就会new一个新的Integer对象,所以,f1和f2是100,两个变量都引用常量池中的Intger对象,所以引用相等,而f3和f4超过了这个范围,会分别new一个新的Intger对象,所以引用不相等。
阅读全文
0 0
- Integer对象自动装箱问题
- 研究Integer的自动装箱
- Integer的自动装箱过程
- Integer自动装箱拆箱
- java自动装箱之Integer
- Integer自动装箱细节分析
- Integer自动装箱的细节
- Integer自动装箱和Integer.valueOf()
- Integer自动拆箱、自动装箱
- Integer自动装箱、自动拆箱
- int Integer 装箱 拆箱 自动装箱 自动拆箱
- Integer的自动拆箱装箱陷阱
- Integer的自动装箱以及Int比较
- Integer的自动装箱与拆箱
- Java中Integer自动装箱误区
- Integer.valueOf(int)及自动装箱内幕
- Integer自动装箱超出赋值范围
- IBM websphere6.1 不支持泛型、int-Integer类型的自动装箱和拆箱问题
- 按钮逐渐覆盖颜色的css写法
- 要开始写博客啦!
- Java集合-LinkedList
- C++入门基础知识详解
- DEDE织梦数据库批量修改替换文章标题和内容_诉言网
- Integer对象自动装箱问题
- CMD&SHELL:变量的写法不一样
- java数组,通过反射操作数组
- 四元数与旋转变换
- strom-1.1.0模拟单词统计功能,Spout编写,Bolt编写,TopologyDriver编写,本地模式运行,集群模式运行,集群模式下看输出结果
- javaScript身份证号码校验工具类IdCardUtils
- WEBBASIC Unit01 Web概述 、 HTML概述 、 文本处理 、 图像和超链接 、 表格 、 表单
- JVM的内存管理
- html的空格显示距离问题