Let's say I have a Java app which uses a (static) int constant from a library:
int myval = OutsideLibraryClass.CONSTANT_INT;
Now, without recompiling my app, I run it against a slightly different version of OutsideLibraryClass, in which the value of CONSTANT_INT is different.
Is my app going to see the new value (because it picks it up at runtime) or the old (because the value is compiled into the bytecode in my method)? Does it make any difference if CONSTANT_INT is final? Is there a part of the Java spec that talks about this?