【发布时间】:2011-12-28 12:04:34
【问题描述】:
Java 编译器是否会将在定义时分配值的基元或 String 类型的 static final 变量视为 REAL 编译时常量?
会这样的变量获得了编译常量在其他语言中的性能奖励,比如 C++?
原始值或String 值的枚举是否被编译器视为常量?
据我了解,用常量替换变量总是好的当它不影响脚本的工作时所以我想知道java中const关键字的空含义.
提前致谢。
【问题讨论】:
-
关于常量字符串,如果它用对常量的引用或使用 final 变量来代替它,实际上并不重要。它仍然是指向完全相同的常量字符串的对象引用。
-
15.28 常量表达式(和 4.12.4 最终变量),JLS 第三版,在这方面非常简单。枚举和空值不是原语,也不是编译时常量。 java.sun.com/docs/books/jls/third_edition/html/…(和java.sun.com/docs/books/jls/third_edition/html/…)
标签: java performance constants