Разница между equals() и == в Java — код, вывод и объяснение
В этой программе мы научимся различать оператор == и метод equals() при работе со строками.
Пример 1: различие между == и 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(), чтобы проверить, равны ли две строки. Здесь:
==проверяет, равны ли ссылки на объекты строк.name1иname2— это две разные ссылки, поэтому возвращаетсяfalse.equals()проверяет, равно ли содержимое строковых объектов. Содержимое обоих объектовname1иname2одинаковое — 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
Здесь name1 и name2 ссылаются на один и тот же объект. Поэтому name1 == name2 возвращает true.