假定Foo里定义了一个constant literal(literal 指String, int之类的字面量),而Bar里又用到了这个常量
一旦Foo里的常量值变了, 而Bar没有重新编译,则Bar里的值仍是Foo变之前的那个值
为什么会这样? 因为编译Bar时会把Foo里的常量值直接写到Bar.class这个字节码文件里; 运行Bar的代码时,JVM并不会动态地去Foo里取这个值,而是直接从Bar.class字节码文件中把值找出来,所以Foo的改动不会影响到Bar的运行
所以,如果Foo里的常量值变了,则Bar应该重新编译,把Foo中的新值更新到字节码文件中