为什么包装类型间的相等判断应该用 equals

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_40147863/article/details/99691725

为什么包装类型间的相等判断应该用 equals

大家都知道 java 中 == 和 equal 的区别, == 操作比较的是两个变量的值,对于引用型变量是判断变量是否指向同一引用对象,比地址。

equals 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。

引用类型用 == 的示例:

public static void main(String[] args) {

	Integer a1 = 127;
	Integer a2 = 127;
	Integer b1 = 128;
    Integer b2 = 128;

    // true
    System.out.println(a1 == a2);

    // false
    System.out.println(b1 == b2);
}

对于 INTEGER 类型,在 [-128, 127] 区间内,是用的同一个地址。其外用的是新的。

所以:包装类型间的相等判断不用 ==,而是应该用 equals

猜你喜欢

转载自blog.csdn.net/qq_40147863/article/details/99691725