2013-06-23 59 views
-4

我们为什么需要它们,即使用它们有什么好处?为什么我们需要在Java中编译时间常量?

最后,编译时间常量需要是最终的,但不一定是静态的吗?

+3

那么,如果它不是最终的,那么它可能不是一个常量...:P – cHao

+4

因为如果没有编译时间常量,你会问为什么在Java中没有编译时间常量:D – Maroun

+0

@cHao不错的答案:D – zerocool

回答

0

编译时间常量的值仅在编译时决定。考虑这个

public static final String s = "abc"; 

在此,可变s是指一个字符串对象,它是一个编译时间常数,这将在存储器中类装载时被创建。在字符串对象的情况下,在常量池中只会创建一个字符串abc,因此无论何时有多个字符串常量的值为abc,那么它们将引用常量池内存中相同的abc对象。

这样做的好处是只需要创建一个可以被多个引用变量引用的对象。

相关问题