zoukankan      html  css  js  c++  java
  • 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在编译时指定了指定字符。

  • 相关阅读:
    响应式布局
    bootstrap--前端开发框架
    ADO.NET Entity Framework
    dns
    自动完成脚本
    一个Banner广告收缩效果
    对联广告2
    蓝色经典的对联广告代码
    Js弹性漂浮广告代码
    jquery悬停tab2
  • 原文地址:https://www.cnblogs.com/shihujiang/p/3245286.html
Copyright © 2011-2022 走看看