为什么我们需要它们,即使用它们有什么好处?
最后,编译时常量是否必须是最终的,但不一定是静态的?
答案 0 :(得分:0)
编译时常量的值仅在编译时决定。考虑一下这个
public static final String s = "abc";
这里,变量s
指的是一个字符串对象,它是一个编译时常量,这将在类加载时在内存中创建。在字符串对象的情况下,常量池中只会创建一个字符串abc
,因此每当有多个字符串常量的值为abc
时,它们就会引用相同的abc
常量池内存中的对象。
这样做的好处是只需要创建一个可由多个引用变量引用的对象。