Исходный неизменяемый объект не меняется. При x = 5 и x += 1 имя x начинает ссылаться на объект со значением 6; прежнее значение 5 остаётся прежним.
Что происходит с объектом при изменении неизменяемого типа данных (например, число 5 увеличили на 1)?
Исходный неизменяемый объект не меняется. При x = 5 и x += 1 имя x начинает ссылаться на объект со значением 6; прежнее значение 5 остаётся прежним.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Исходный неизменяемый объект не меняется. При x = 5 и x += 1 имя x начинает ссылаться на объект со значением 6; прежнее значение 5 остаётся прежним.
Если другие ссылки указывали на исходный объект, они по-прежнему видят 5. Новый результат может быть уже существующим кэшированным объектом, поэтому не обязательно происходит новое выделение памяти. Когда объект больше не нужен и недостижим, реализация может освободить его. Различайте операцию над значением, перепривязку переменной и изменение самого объекта.