final static java_java – final static vs final非静态字段和JVM优化

我很好奇JVM如何处理静态最终字段.我看到了一个类似的问题

here,但这不是我想要的.让我们考虑这样的例子:

public class TestClassX {

public final int CODE_A = 132;

public final int CODE_B = 948;

public final int CODE_C = 288;

// some other code

}

public class TestClassY {

public static final int CODE_A = 132;

public static final int CODE_B = 948;

public static final int CODE_C = 288;

// some other code

}

在TestClassX字段中,由于它们是最终的且无法修改,因此在TestClassX类的所有实例中具有相同的值.当然我不能编写TestClassX.CODE_A,但我可以说,这些值实际上对所有实例都是通用的 – 我敢肯定,每个实例都有一个值为132的CODE_A字段.

在TestClassY中,我可以使用语法TestClassY.CODE_A,但初看起来,对于看到“哦,这些值对于所有实例都很常见”的开发人员来说,它更容易.

我的主要问题:

我想JVM,在TestClassX的情况下,每次创建新实例时都不会为最终字段使用任何额外的内存.可以? JVM是否在这种情况下进行任何优化以及它是什么样的优化?

额外的问题1)我也确信我错过了一些非常重要的东西,这是我怀疑的原因.那是什么?

额外的问题2)顺便说一句.如何在JVM优化之后查看我的Java源代码的样子(以便将来可以使用;))?有没有IDE支持这样的功能?例如IntelliJ?我想简单地看看JVM如何处理我的TestClassX和TestClassY.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值