【发布时间】:2018-08-23 05:25:55
【问题描述】:
在java中,如果一个变量是不可变的并且是final的,那么它应该是一个静态类变量吗?
我问是因为每次类的实例使用它时创建一个新对象似乎很浪费(因为它总是一样的)。
例子:
每次调用时在方法中创建的变量:
public class SomeClass {
public void someMethod() {
final String someRegex = "\\d+";
final Pattern somePattern = Pattern.compile(someRegex);
...
}
}
变量创建一次:
public class SomeClass {
private final static String someRegex = "\\d+";
private final static Pattern somePattern = Pattern.compile(someRegex);
public void someMethod() {
...
}
}
是否总是最好使用后一种代码?
这个答案似乎表明最好使用后一个代码:How can I initialize a String array with length 0 in Java?
【问题讨论】:
-
你也可以有一个最终实例变量,每个实例都不同。
标签: java