Unlike Java, Kotlin is purely object-oriented language. There are no primitives, everything is an object. With this said, you might be surprised by results.
Let’s compare two objects with equality operator:
object1 == object2
You expected to get false, right? But answer is true. Why? This code is translated to
a?.equals(b) ?: (b === null)