java - JAVA中编译器内联的编译时常量表达式值是什么?

标签 java

最近我在读我得到了这个

"When you declare a String (which is immutable) variable as final, and initialize it with a compile-time constant expression, it also becomes a compile-time constant expression, and its value is inlined by the compiler where it is used."

“我真的很困惑,这意味着它的值是由编译器内联的”?如果可能,请用简单的方式解释它

Source of the above line

最佳答案

当一个字符串在编译时完成并初始化时,编译器可以将字符串复制粘贴到代码中,而不是在每次使用时查找变量。类似于 inline expansion .

final String a = "asd";
String b = a;

上面的代码片段变成了

final String a = "asd";
String b = "asd";

关于java - JAVA中编译器内联的编译时常量表达式值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29805619/

相关文章:

java - 如何在事务开始之前或提交之前执行操作?

java - 在 C++ 程序中使用 Java 小程序

java - 在二维数组的末尾添加新列

java - java中的同步块(synchronized block)

java - Can't parcel a recycled bitmap 使用Fresco加载图片到通知时报错

java - 在java中实现简单的通用方法时出现编译错误

java - 为什么 MySQL 数据库返回空结果集,尽管数据应该是正确的

java - 如何调试库代码中出现的 NullPointerException?

java - cxf 客户端授权问题

java - 如何将参数从 cordova HTTP 传递到 Spring Controller