Integer陷阱(0~127和其他 数值相等对象比较)
来源:互联网 发布:读出文字的软件 编辑:程序博客网 时间:2024/06/08 10:18
Integer 类在对象中包装了一个基本类型 int 的值。
有一个陷阱存在,经常出现在面试题中,情况如下面代码
public class IntegerDemo { public static void main(String[]args){ Integer a = 200; Integer b = 200; System.out.println(a==b);//false System.out.println(a.equals(b));//true //数据在byte范围内,JVM不会从新new对象 Integer aa = 127; Integer bb = 127; System.out.println(aa==bb);//true System.out.println(aa.equals(bb));//false Integer aaa = 128; Integer bbb = 128; System.out.println(aaa==bbb);//false System.out.println(aaa.equals(bbb));//true }}
在0~127范围内,JVM不会从新分配对象。这时直接比较两个数值相等的对象时,答案为true.
而其他范围内,需要重新创建对象,这时直接比较两个数值相等对象,是在比较两个对象的引用地址,这时答案为false。
阅读全文
0 0
- Integer陷阱(0~127和其他 数值相等对象比较)
- java基础之Integer和Long对象相等比较
- java基础之Integer和Long对象相等比较 .
- java基础之Integer和Long对象相等比较 .
- 比较一个对象list中的id值和List<Integer>的值是否相等
- integer 类型比较相等
- Integer数值比较问题
- Integer的自动拆箱和自动装箱的陷阱(整型数-128到127的值比较问题)
- Integer比较是否相等问题
- 关于Integer数值比较的问题以及不可变对象
- 【Java】Integer变量相等(==)比较问题
- 比较两个对象相等
- js 比较对象相等
- Integer 数值范围在-128~127之间时分别使用 ==和 equals进行比较
- Java之Integer数值比较
- java中Integer数值比较
- 比较两个浮点型数值是否相等
- js比较两个数值是否相等
- [LeetCode]637. Average of Levels in Binary Tree
- TortoiseGit使用详解(一)
- BZOJ4033 [HAOI]树上染色
- PAT乙级 1009. 说反话 (20) 句子中单词逆序输出,'\0'的妙用,字符串分割
- 优先队列(C++/Java)
- Integer陷阱(0~127和其他 数值相等对象比较)
- Abstract
- MVC、MVVM和单向数据流的对比
- 剑指offer-左旋字符串
- 2017 省赛 山东 B Quadrat 【打表】【规律】
- js实现多选的最简单方法:
- 剑指Offer----二叉搜索树的后序遍历序列
- 2017.7.24 机房测试(计算几何,花花的聚会,文本编辑器)
- Final