Ответ
Ссылочные типы в Kotlin/Java должны быть:
- Непримитивными - это классы, интерфейсы, массивы
- Хранят ссылку на объект в куче, а не значение
- Могут быть null (в Kotlin требуется явное указание
?) - Сравнение через
==проверяет ссылки,equals()- содержимое - Передаются по ссылке в методы (копируется только ссылка)
Пример:
data class User(val name: String)
val user1 = User("Alex") // ссылочный тип
val user2 = user1 // копируется ссылка
println(user1 == user2) // true, т.к. одинаковые ссылки
Отличаются от примитивных типов (Int, Boolean и др.), которые хранят значение напрямую и не могут быть null.