Sobes.tech
Junior — Middle

Каква е разликата при сравняването на обекти с операторите == в Java и Kotlin?

sobes.tech AI

Отговор от AI

В Java операторът == сравнява референтите към обектите, тоест проверява дали две променливи сочат към един и същи обект в паметта.

В Kotlin операторът == сравнява стойностите на обектите, като извиква метода equals(), тоест проверява логическото равенство на съдържанието на обектите.

Ако трябва да сравните референции в Kotlin, използвайте оператора ===.

Пример:

val a = String("test")
val b = String("test")

println(a == b)  // true, сравнение по стойност
println(a === b) // false, различни обекти

В Java:

String a = new String("test");
String b = new String("test");

System.out.println(a == b);      // false, различни обекти
System.out.println(a.equals(b)); // true, сравнение по стойност