Что такое ссылочные типы данных

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

Ответ

Ссылочный тип данных (reference type) — это тип, который хранит ссылку на объект в памяти, а не само значение. В отличие от примитивных типов (int, boolean и т. д.), переменные ссылочного типа указывают на область в куче (heap), где хранится объект.

Примеры ссылочных типов в Java/Kotlin:

  • Классы (String, ArrayList, пользовательские классы)
  • Интерфейсы
  • Массивы

Пример:

val list1 = mutableListOf(1, 2, 3)
val list2 = list1  // Обе переменные ссылаются на один объект
list2.add(4)
println(list1) // [1, 2, 3, 4] - изменение через list2 отразилось на list1

Особенности:

  • Работают через ссылки
  • Могут быть null (в Kotlin — если явно объявлены как nullable)
  • Хранятся в куче
  • Сравнение через == проверяет ссылки, а не содержимое (в Kotlin для содержимого используется contentEquals или equals)