Java 程序:区分 String == 操作符和 equals() 方法

要理解此示例,您应了解以下Java编程主题


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

class Main {

  public static void main(String[] args) {

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

    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的内容都是相同的Programiz。因此,它返回true

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

class Main {

  public static void main(String[] args) {

    String name1 = new String("Programiz");
    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

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战