在 Java 中比较两个整数

Mohammad Irfan 2023年10月12日
  1. 在 Java 中使用 == 运算符比较两个整数值
  2. 使用 Java 中的 equals() 方法比较两个整数引用
  3. 在 Java 中使用 equals() 方法比较两个整数
  4. 在 Java 中不要使用 == 运算符比较两个整数引用
在 Java 中比较两个整数

本教程介绍了如何比较 Java 中的两个整数。

要比较 Java 中的整数值,我们可以使用 equals() 方法或 ==(等于运算符)。两者都用于比较两个值,但是 == 运算符检查两个整数对象的引用相等性,而 equal() 方法仅检查整数值(原始和非原始)。

因此,在比较整数值时,由开发人员在比较方法之间进行选择。让我们看一些例子。

在 Java 中使用 == 运算符比较两个整数值

在此示例中,我们采用两个原始整数,然后使用 == 运算符比较两个值。我们使用 Java 15 测试该示例。请参见下面的示例。

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 18;
    int b = 18;
    if (a == b) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

输出:

Both are equal

使用 Java 中的 equals() 方法比较两个整数引用

我们可以使用 equals() 方法在 Java 中比较两个整数。如果两个对象相等,则返回 true;否则,它返回 false。请参见下面的示例。

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = new Integer(18);
    Integer b = new Integer(18);
    if (a.equals(b)) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

输出:

Both are equal

在 Java 中使用 equals() 方法比较两个整数

在这里,我们正在使用 equals()方法比较两个整数引用。

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 10;
    Integer b = 10;
    if (a.equals(b)) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

输出:

Both are equal

在 Java 中不要使用 == 运算符比较两个整数引用

我们不应该使用 == 运算符来比较两个整数值,因为它会检查引用(对象)的相等性。

Java 缓存了 -128 到 127 范围内的 Integer 值。因此,当两个整数对象在此范围内具有相同的值时,== 比较器将返回 true,因为它们引用的是同一个对象。但对于超出此范围的任何值,它将返回 false

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 18;
    Integer b = 18;
    if (a == b) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

输出:

Both are equal
public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 150;
    Integer b = 150;
    if (a == b) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

输出:

Not equal

正如你在上面看到的,我们不应该使用 == 来比较两个 Integer 值。

相关文章 - Java Integer