Integer使用==比较的问题
2024-10-21 03:48:54
Integer使用==比较的问题
new一个对象
public Integer(int value) {
this.value = value;
}
自动装箱
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
自动拆箱
public int intValue() {
return value;
}
总结:
- int 和 int 比较,比较的是字面量的值,使用==始终是true
- int 和 integer 比较,由于 integer 会发生自动拆箱,也是true
- integer 和 integer 比较:
- 若两个都是new出来的对象,则始终是false
- 若一个是new,一个是非new(包括字面量 || Integer.valueOf( )等),那么一个是自动装箱的对象,一个是new出来的对象,始终flase
- 两个都不是new出来的,都会发生自动装箱,就需要看值的范围,在-128-127的范围内,会获取IntegerCache里的对象,这样就是true,范围外的还是false
最新文章
- MSYS2——Windows平台下模拟linux环境的搭建
- JAVA开发相关
- volatile关键字和mutable关键字
- 简单一键CENTOS6 安装PPTP VPN方法记录
- 编码之JSP乱码涉及问题
- poj1328 贪心
- Deep Learning 7_深度学习UFLDL教程:Self-Taught Learning_Exercise(斯坦福大学深度学习教程)
- 根据窗体自动调整控件及文本框记住上次填写内容Demo
- Data Flow ->;>; Union All
- Orchard源码分析(1):插件式的支持——模块和主题
- 数据加密算法---base64
- Swift - 使用EventKit获取系统日历事件,添加事件
- 编程经验点滴----巧妙解决 Oracle NClob 读写问题
- Java 之 Web前端(二)
- ORM字段操作
- 论文笔记:Improving Deep Visual Representation for Person Re-identification by Global and Local Image-language Association
- WinDbg命令三部曲
- API测试利器postMan 使用教程
- Ansible Playbook 使用循环语句
- 告知你不为人知的UDP-疑难杂症和使用