Что такое неизменяемый тип данных

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

Ответ

Неизменяемый (immutable) тип данных — это тип, экземпляры которого нельзя изменить после создания. Любая операция, которая кажется изменяющей объект, на самом деле создаёт новый объект.

Примеры в Kotlin:

  • String, Int, Boolean — immutable
  • List по умолчанию immutable, но есть MutableList
val str = "Hello"
val newStr = str.replace("H", "h") // Создаётся новая строка
println(str) // "Hello" (оригинал не изменился)

Преимущества неизменяемости:

  • Потокобезопасность
  • Предсказуемость состояния
  • Упрощение отладки
  • Возможность кеширования (как в случае String pool)