В чем разница между оператором == в Java и Kotlin

«В чем разница между оператором == в Java и Kotlin» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java == сравнивает примитивы по значению, а для объектов — по ссылке (адресу в памяти). В Kotlin == работает как equals() для объектов (сравнение по значению), а для примитивов — аналогично Java. Для сравнения ссылок в Kotlin используется ===.

Пример:

val str1 = "Hello"
val str2 = "Hello"
val str3 = String("Hello".toCharArray())

println(str1 == str2)  // true (значения одинаковые)
println(str1 === str2) // true (строки интернированы)
println(str1 == str3)  // true (значения одинаковые)
println(str1 === str3) // false (разные объекты)