Я думал, что это будет хорошим упражнением для понимания немного больше об объектах.Как ссылаться на объект Java снова после изменения исходной ссылочной переменной
Я пытаюсь выяснить, как ссылаться на объект снова после изменения исходной ссылочной переменной объекта.
Возьмет следующий код:
String person = "person a"; //Line 1
person = "person b"; //Line 2
Теперь линия 1 создает новый объект String, с задающим быть person
. Строка 2 присваивает эту ссылочную переменную другому новому объекту String. У исходного объекта String теперь нет ссылочной переменной.
Как бы я обходил назад и ссылался на исходный объект String, который уже находится в памяти в строке 1? Скажем, присваивая ссылочную переменную person
обратно исходному объекту String? Как последующая мысль (не то, что я знаю много о сборке мусора), но является ли исходным объектом, подходящим для сбора мусора, является то, что после строки 2 он не имеет ссылочной переменной и поэтому не имеет права ссылаться снова?
Я вижу метод hashCode()
, а также System.identityHashCode()
, но не могу понять, как его реализовать, чтобы снова ссылаться на исходный объект.
Вы не можете. Сохраните предыдущее значение во временной переменной и получите доступ к нему. –
'hashCode()' (и 'System.identityHashCode()') не предназначены для получения определенного объекта; его значение не может быть интерпретировано как адрес памяти. Хэш-код предназначен для определения того, являются ли два объекта определенно * не * равными. –
@AndyTurner, так что если два объекта имеют один и тот же «хэш-код», мы не можем сказать, что у них одинаковый адрес памяти? –