Пожалуйста, объясните окончательный AtomicReference

Может кто-нибудь объяснить мне это:

final AtomicReference<Integer> atomicReference = new AtomicReference<>(1);
atomicReference.set(2);

В каком смысле окончательно используется?

4 ответа

Решение

В каком смысле окончательно используется?

Сама переменная является окончательной. Вы не можете изменить значение переменной для ссылки на другой AtomicReference объект.

призвание set на объекте и, следовательно, изменение данных в объекте совсем не одно и то же.

Чтобы выразить это в более реальных терминах, я могу дать вам мой домашний адрес и сказать: "Вы не можете изменить то место, где я живу". Это не мешает вам покрасить мою входную дверь в зеленый цвет (т.е. внести изменения в дом, на который ссылается адрес).

final не позволяет вам изменить переменную для ссылки на другой экземпляр.
Это не мешает вам мутировать существующий экземпляр.

Это означает, что вы не можете писать

atomicReference = something;

final Значит это atomicReference не может ссылаться на другого AtomicReference больше.

final просто означает, что переменная / объект не может быть переназначена.

Но вы можете изменить свой объект через сеттер, например

Проверьте это:

http://en.wikipedia.org/wiki/Final_%28Java%29

Другие вопросы по тегам