【发布时间】:2010-12-15 11:09:37
【问题描述】:
标题为“Core Java Concurrency”的 DZone 参考卡指出:
一旦设置,最终字段值 无法更改。将对象引用字段标记为 final 不会阻止从该字段引用的对象稍后更改。为了 例如,最终的 ArrayList 字段不能更改为不同的 ArrayList,但可以在列表实例上添加或删除对象。
和
最终字段冻结不仅包括对象中的最终字段,还包括所有 可从这些最终字段访问的对象。
我对第二个说法并不完全清楚。这是否意味着如果我在 B 类类型的 A 类中有一个 final 字段,而后者又具有一个 Integer 类型的 final 字段,那么 A 类实例的最终字段冻结仅在 b.c 的最终字段冻结后完成已经发生了吗?
public class A{
public final B b = new B();
}
public class B{
public final Integer c = 10;
}
【问题讨论】:
标签: java concurrency