• java final修饰变量时的一种情况


    有如下一种场景。

    1.在文件PaymentConfig.java中存在如下变量public static final desc="描述"

    2.类Test.java中使用了desc变量,String xxDesc = PaymentConfig.desc.

    问题描述:由于业务原因需要更改desc变量,于是我更改desc="描述123",将PaymentConfig.java重新编译部署。

    但是在生成环境中Test类取得的xxDesc仍然是"描述",而不是"描述123"。

    解决办法:反编译Test.class可以看到String xxDesc ="描述";这意味着,在编译期间,jvm就把xxDesc赋值为"描述"了。

    所以出现了上面的问题。

    因此在发布程序的时候需要吧Test.class重新编译发布。

    -------------------------------------------------------------------

    final的不可变性,是在编译期确定的,任何一个引用了final变量的类中变量,该变量都被jvm在编译时指定了指定字符。

  • 相关阅读:
    文本溢出隐藏与定位
    css基本属性 内边距 外边距及盒模型
    CSS基本属性2
    CSS基本属性
    CSS入门
    表格与表单
    列表与图片
    html标签类型
    HashMap和HashTable
    Map接口
  • 原文地址:https://www.cnblogs.com/shihujiang/p/3245286.html
Copyright © 2020-2023  润新知