Java判断Integer类型的值是否相等

淡淡的烟草味﹌ 2023-09-29 11:31 65阅读 0赞

Java判断Integer类型的值是否相等,Objects.equals(a,b)的说明
工作遇到Integer类型比较,记录于此

常见的比较方式有:

1.==
2.equals()
3.Integer.intValue()
4.Objects.equals(a,b)
1
2
3
4
使用 == 比较的是堆中的地址,数值范围在-128~127是可以比较的,一旦超过范围,就会new 一个对象,地址自然不同。

public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
1
2
3
4
5
一:值是null的情况:
a.equals(b), a 是null, 抛出NullPointException异常。

a.equals(b), a不是null, b是null, 返回false

Objects.equals(a, b)比较时, 若a 和 b 都是null, 则返回 true, 如果a 和 b 其中一个是null, 另一个不是null, 则返回false。注意:不会抛出空指针异常。

null.equals(“abc”) → 抛出 NullPointerException 异常
“abc”.equals(null) → 返回 false
null.equals(null) → 抛出 NullPointerException 异常
Objects.equals(null, “abc”) → 返回 false
Objects.equals(“abc”,null) → 返回 false
Objects.equals(null, null) → 返回 true
1
2
3
4
5
6
二:值是空字符串的情况:
a 和 b 如果都是空值字符串:””, 则 a.equals(b), 返回的值是true, 如果a和b其中有一个不是空值字符串,则返回false;

这种情况下 Objects.equals 与情况1 行为一致。

“abc”.equals(“”) → 返回 false
“”.equals(“abc”) → 返回 false
“”.equals(“”) → 返回 true
Objects.equals(“abc”, “”) → 返回 false
Objects.equals(“”,”abc”) → 返回 false
Objects.equals(“”,””) → 返回 true
1
2
3
4
5
6
————————————————
版权声明:本文为CSDN博主「hikarilee」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hikarilee/article/details/114107492

发表评论

表情:
评论列表 (有 0 条评论,65人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java判断字符串是否相等

    对字符串对象进行比较不能简单地使用比较运算符"==",因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址是不同的,使用比较运算符仍然会

    相关 Integer判断相等

    前言 工作中,才发现自己的基础很是不扎实,对java的源码以及内存这一块了解甚少!!! 这里转载一篇,感谢大神,mua~~~。 ------------------