Что происходит с объектом при изменении неизменяемого типа данных (например, число 5 увеличили на 1)?

Исходный неизменяемый объект не меняется. При x = 5 и x += 1 имя x начинает ссылаться на объект со значением 6; прежнее значение 5 остаётся прежним.

Короткий ответ

Что ответить на собеседовании

Исходный неизменяемый объект не меняется. При x = 5 и x += 1 имя x начинает ссылаться на объект со значением 6; прежнее значение 5 остаётся прежним.

Подробный разбор

Ответ с пояснениями

Исходный неизменяемый объект не меняется. При x = 5 и x += 1 имя x начинает ссылаться на объект со значением 6; прежнее значение 5 остаётся прежним.

Если другие ссылки указывали на исходный объект, они по-прежнему видят 5. Новый результат может быть уже существующим кэшированным объектом, поэтому не обязательно происходит новое выделение памяти. Когда объект больше не нужен и недостижим, реализация может освободить его. Различайте операцию над значением, перепривязку переменной и изменение самого объекта.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее