Java 最终静态值为';在重新部署JBoss后无法更新

Java 最终静态值为';在重新部署JBoss后无法更新,java,jboss,static,jvm,war,Java,Jboss,Static,Jvm,War,以下是我所做的: 已编译包含已更改的最终静态值的文件 使用步骤1中编译的文件更新服务器中对应的.class文件 将“xxx.war.deploy”更改为“xxx.war.dodeploy”,以重新部署战争 在这之后,我想最终的静态值应该更新,但它没有更新 只是我删除了整个war文件,重新上传和部署。该值最终更新 那么,这是什么原因呢?最终的静态值是否与JVM具有相同的生存时间 这是因为静态变量是在类加载器加载类时加载的,而它们是在类可以卸载时卸载的,并且在使用的类加载器被垃圾收集时会发生这种情况

以下是我所做的:

  • 已编译包含已更改的最终静态值的文件
  • 使用步骤1中编译的文件更新服务器中对应的.class文件
  • 将“xxx.war.deploy”更改为“xxx.war.dodeploy”,以重新部署战争
  • 在这之后,我想最终的静态值应该更新,但它没有更新

    只是我删除了整个war文件,重新上传和部署。该值最终更新


    那么,这是什么原因呢?最终的静态值是否与JVM具有相同的生存时间

    这是因为静态变量是在类加载器加载类时加载的,而它们是在类可以卸载时卸载的,并且在使用的类加载器被垃圾收集时会发生这种情况。

    这是因为静态变量是在类加载器加载类时加载的,并且它们是当类可以卸载时卸载,并且当使用的类加载器被垃圾收集时可能发生这种情况。

    这是因为静态变量在类加载器加载时被加载,而在类可以卸载时被卸载,并且当使用的类加载器被垃圾收集时可能发生这种情况。

    这是因为这是因为静态变量在类加载器加载类时加载,在类可以卸载时卸载,并且在使用的类加载器被垃圾收集时可能发生这种情况。

    原语或字符串类型的静态最终变量实际上是编译时常量,因此,无论在何处使用,都可以直接内联。因此,您将丢失对原始类的引用,并且在该类更改时不会发生更新。您需要完全重新编译


    有很多方法可以避免这种情况,但没有一种方法是特别令人愉快的。例如,您可以使用静态方法返回常量值。

    原语或字符串类型的静态最终变量实际上是编译时常量,因此,无论在何处使用,都会按字面意思内联。因此,您将丢失对原始类的引用,并且在该类更改时不会发生更新。您需要完全重新编译


    有很多方法可以避免这种情况,但没有一种方法是特别令人愉快的。例如,您可以使用静态方法返回常量值。

    原语或字符串类型的静态最终变量实际上是编译时常量,因此,无论在何处使用,都会按字面意思内联。因此,您将丢失对原始类的引用,并且在该类更改时不会发生更新。您需要完全重新编译


    有很多方法可以避免这种情况,但没有一种方法是特别令人愉快的。例如,您可以使用静态方法返回常量值。

    原语或字符串类型的静态最终变量实际上是编译时常量,因此,无论在何处使用,都会按字面意思内联。因此,您将丢失对原始类的引用,并且在该类更改时不会发生更新。您需要完全重新编译

    有很多方法可以避免这种情况,但没有一种方法是特别令人愉快的。例如,可以使用静态方法返回常量值