两个Integer类型进行比较

本文探讨了Integer类型在-128到127范围内对象复用机制,以及如何在不同情况下正确比较和使用equals()与intValue()。了解溢出后对象新创建及其对相等性的影响。

 

两个Integer类型进行比较,当值在-128~127之间时,会复用以前的对象,不会new新对象,当超出这个范围后,会new 新对象这个时候就不会相等,可以使用a1.equal(a2)进行比较,或者a1.intValue() == a2.intValue()进行比较

Java 中,比较两个 `Integer` 类型是否相同有以下几种方法: ### 使用 `==` 运算符 - 当两个 `Integer` 对象的值在 -128 到 127 之间时,使用 `==` 比较会返回 `true`,因为该范围内的整数值会被缓存到 `Integer` 类中,比较的是同一个对象引用[^1][^4]。 - 当值超出 -128 到 127 范围时,使用 `==` 比较可能返回 `false`,因为超出范围的 `Integer` 对象是通过 `new` 关键字创建的,不再使用缓存对象,比较的是不同的对象引用[^1][^4]。 - 当一个 `Integer` 对象和一个 `int` 基本类型比较时,如果它们的值相等,`==` 会返回 `true`,因为 Java 会自动将 `Integer` 对象拆箱为 `int` 类型,实际上是两个 `int` 变量的比较[^2]。 示例代码: ```java public class IntegerComparison { public static void main(String[] args) { // 在 -128 到 127 范围内 Integer a = 100; Integer b = 100; System.out.println(a == b); // 输出: true // 超出 -128 到 127 范围 Integer c = 200; Integer d = 200; System.out.println(c == d); // 输出: false // Integer 和 int 比较 Integer e = 150; int f = 150; System.out.println(e == f); // 输出: true } } ``` ### 使用 `equals()` 方法 `equals()` 方法会先判断参数中的对象是否是 `Integer` 类型,如果是同类型比较值是否相同,值相同则返回 `true`,否则返回 `false`。该方法不受值范围的影响,只要两个 `Integer` 对象的值相同,就会返回 `true`[^3]。 示例代码: ```java public class IntegerEqualsComparison { public static void main(String[] args) { Integer a = 100; Integer b = 100; System.out.println(a.equals(b)); // 输出: true Integer c = 200; Integer d = 200; System.out.println(c.equals(d)); // 输出: true } } ``` ### 使用 `compareTo()` 方法 `Integer` 类实现了 `Comparable` 接口,重写了 `compareTo()` 方法。如果两个 `Integer` 对象的值相等,`compareTo()` 方法会返回 0。 示例代码: ```java public class IntegerCompareToComparison { public static void main(String[] args) { Integer a = 100; Integer b = 100; System.out.println(a.compareTo(b) == 0); // 输出: true Integer c = 200; Integer d = 200; System.out.println(c.compareTo(d) == 0); // 输出: true } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值