Integer浅谈
2024-09-17 23:26:51
别BB,亮代码。
结果:
结果分析:
1.true 相信大家对第一个的比较结果应该不意外,只是单纯的数值比较
2.true 这个和第三个结果一比较起来就感觉迷惑了,明明两个都是同样的赋值方式,为什么一个为真,一个为假呢。说明这个问题之前让我们来看看Integer这个类的底层代码:
首先Integer in = 127在底层执行了valueof(int i)方法,这个方法的含义是当数值-128=<且<=127时,则会返回常量池中的数值;如果不在这个范围,则执行 new Integer();所以 in 和out 都指向常量池中数值,比较结果相等。 此外,这种赋值方式还进行了自动装箱机制。
3.false 参考以上就可以知道,128不在常量值的范围之内,所以等价于 new Integer(128)。在堆中分配了存储空间,两次分配的地址不同,所以比较结果为假。
4.false 这个跟 new Integer(128)的原理一样,两次new Integer(1000)的分配的储存地址不同,所以比较结果为假。
5.true 当int 与 Integer比较会进行自动拆箱,比较的只是数值。所以为真。
6.false Integer 和new Integer()比较不可能为真,因为Integer方式有两种可能,一种指向常量池,另一种在堆中分配空间,而new Integer()只会在堆中分配,即使两者都在堆中,但地址也不相同,所以为假。
最新文章
- Android测试网络是否连接
- openstack中的身份管理
- 针对不同浏览器,CSS如何写
- 第 29 章 CSS3 弹性伸缩布局[中]
- xml-xml试题
- ios学习-delegate、传值、跳转页面
- Ubuntu18.04LTS安装Nvidia显卡
- C博客作业01--分支、顺序结构
- 解决用低版本的客户端ORACLE 12提示ORA-28040的异常
- opencv 图片剪切
- VXLAN, 一种叠加在L3网络上的L2网络
- S3C2440 DMA 驱动示例
- @Scheduled 定时
- js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的
- Oracle问题之ORA-12560TNS:协议适配器错误-转载
- 【机翻】Deep Plug-and-Play Super-Resolution for Arbitrary
- Java Web开发基础(3)-JSTL
- 运行Junit单测时遇到的问题
- webgl学习笔记二-绘图多点
- Maven:Maven 入门
热门文章
- Android开发之Bitmap的高效加载
- iOS开发之如何修改导航栏的内容
- IOS开发创建开发证书及发布App应用(四)——创建配置概要文件
- 浅谈java类集框架和数据结构(2)
- SSH程序框架的整合(1)
- [原]android sdk更新的终极解决方案
- 通过js获取元素css3的transform rotate旋转角度方法
- SpringMVC基础学习(一)&mdash;初识SpringMVC
- WPF 杂谈——开篇简言。
- c#FTP操作类,包含上传,下载,删除,获取FTP文件列表文件夹等Hhelp类