区分 String == 运算符和 equals() 方法的 Java 程序

要理解此示例,您应该具备以下 Java 编程的知识:

示例 1:Java 程序区分 == 和 equals()

public class Main {

  public static void main(String[] args) {

    String name1 = new String("Hello");
    String name2 = new String("Hello");

    System.out.println("Check if two strings are equal");

    // check if two strings are equal
    // using == operator
    boolean result1 = (name1 == name2);
    System.out.println("Using == operator: " + result1);

    // using equals() method
    boolean result2 = name1.equals(name2);
    System.out.println("Using equals(): " + result2);
  }
}

输出

Check if two strings are equal
Using == operator: false
Using equals(): true

在上面的例子中,我们使用了 == 运算符和 equals() 方法来检查两个字符串是否相等。这里,

  • == 检查对字符串对象的引用是否相等。这里, name1name2 是两个不同的引用。因此,它返回 false
  • equals() 检查字符串对象的内容是否相等。这里,两个 name1name2 对象的内容都是 Hello。因此,它返回 true

示例 2:区分 == 和 equals()

public class Main {

  public static void main(String[] args) {

    String name1 = new String("Hello");
    String name2 = name1;

    System.out.println("Check if two strings are equal");

    // check if two strings are equal
    // using == operator
    boolean result1 = (name1 == name2);
    System.out.println("Using == operator: " + result1);

    // using equals() method
    boolean result2 = name1.equals(name2);
    System.out.println("Using equals(): " + result2);
  }
}

输出

Check if two strings are equal
Using == operator: true
Using equals(): true

这里, name1name2 两者都指向同一个对象。因此, name1 == name2 返回 true