【发布时间】:2015-05-16 17:37:32
【问题描述】:
在对此question 的评论中,我声称final 在某些情况下必须得到JVM 的认可。已经询问了final 变量的safe publication 和handling of static final members。但是强制类和方法是最终的并禁止覆盖最终字段呢?恕我直言,这可以而且必须在类加载时完成。
我的观点是
- 对于 JVM 的安全性至关重要,例如
String是final,因此不得加载扩展它的手工类。 -
public final字段也是如此。虽然反射可以改变它们,但它会在运行时进行检查。因此,在加载时也必须拒绝重新分配最终字段的字节码。
但我找不到证据。我说的对吗?
【问题讨论】: