4

有人可以解释一下吗:

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

final 在什么意义上使用?

4

4 回答 4

13

final 在什么意义上使用?

变量本身是最终的。您不能更改变量的值来引用不同的 AtomicReference对象。

调用set对象并因此更改对象中的数据根本不是一回事。

用更现实的说法,我可以给你我的家庭住址,然后说,“你不能改变我住的地方。” 不过,这并不能阻止你把我的前门漆成绿色(即改变地址所指的房子。)

于 2013-04-21T19:45:34.570 回答
2

final阻止您更改变量以引用不同的实例。
它不会阻止您改变现有实例。

这意味着你不能写

atomicReference = something;
于 2013-04-21T19:44:54.730 回答
1

final意味着atomicReference不能引用另一个AtomicReference

于 2013-04-21T19:45:21.220 回答
1

final只是意味着不能重新分配变量/对象。

但是你可以通过 setter 来修改你的对象,例如

一探究竟:

http://en.wikipedia.org/wiki/Final_(Java)

于 2013-04-21T19:45:33.957 回答