Страницы

Поиск по вопросам

понедельник, 24 февраля 2020 г.

Объекты классов-оболочек в Java

#java #классы #типы


Объект любого из классов-оболочек представляет собой полноценный экземпляр в динамической
памяти, в котором хранится его неизменяемое значение.
Что подразумевается под неизменяемым значением?
    


Ответы

Ответ 1



Неизменяемое значение - это значение примитива, для которого объект является оболочкой. К примеру, для int - оболочка java.lang.Integer для long - оболочка - java.lang.Long. Чтобы убедиться - открываем исходный код класса java.lang.Integer : /** * The value of the {@code Integer}. * * @serial */ private final int value; /** * Constructs a newly allocated {@code Integer} object that * represents the specified {@code int} value. * * @param value the value to be represented by the * {@code Integer} object. */ public Integer(int value) { this.value = value; } Вот это private final int value и есть неизменяемое значение. UPD: То есть объявляя Integer somevar = 1; на самом деле, выполняется нечто вроде: Integer somevar = new Integer(1); далее, если мы захотим поменять значение somevar = 2 - то переменная somevar будет указывать уже на другой объект, а не перезатрет значение предыдущего. а предыдущий объект, будет собран сборщиком сусора, если на него более не имеется ссылок

Комментариев нет:

Отправить комментарий