Java常量的本地缓存

DJC*_*rth 5 java

假设我有一个Java应用程序,它使用来自库的(静态)int常量:

int myval = OutsideLibraryClass.CONSTANT_INT;

现在,在不重新编译我的应用程序的情况下,我针对稍微不同的OutsideLibraryClass版本运行它,其中CONSTANT_INT的值不同.

我的应用程序是否会看到新值(因为它在运行时选择它)或旧的(因为值在我的方法中编译成字节码)?如果CONSTANT_INT是最终的,它会有什么不同吗?Java规范中是否有一部分涉及此问题?

Nul*_*ice 4

对常量字段的引用在编译时解析为它们表示的常量值。(JLS 13.1)