Ответ
В 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 (разные объекты)