跳转到主要内容

Java 常量折叠

Avatar emanjusaka
统计中…
191
0
Java 常量折叠

作者:毅念安(Inian / Emanjusaka)|原创,后续会更新修正,转载请保留原文链接。
📝 独立博客:https://www.emanjusaka.com|博客园:https://www.cnblogs.com/emanjusaka|公众号:毅念安

在Java中,如果一个变量被声明为final类型,并且在编译时就已经被初始化了,那么编译器就会把这个变量的值在编译期间计算出来,并将结果保存在字节码文件中。这个过程称为“常量折叠”。

例如:

final int a = 10;
final int b = 20;
int c = a + b;

在编译时,编译器会将 ⁠a + b 直接计算为 ⁠30,并生成类似以下的字节码:int c = 30;

关键点:
1. 常量表达式:必须是编译时可确定的常量值,如字面量或 ⁠final 修饰的变量。
2. 编译时优化:常量折叠发生在编译阶段,不会影响运行时的行为。
3. 适用范围:适用于基本数据类型(如 ⁠int、⁠long 等)和字符串常量。

本文由 emanjusaka 创作,发表于 www.emanjusaka.com,采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

❋

微信扫码分享

微博
点赞是美意,赞赏是鼓励。如有帮助,可以关注下微信公众号。
微信 微信
支付宝 支付宝
查看赞赏名单 →
评论
← 上一篇 Java 中是怎么设计保证了 String 的不可变性? 下一篇 → 为什么 Java 的泛型是伪泛型?