在java中,如果变量是不可变的,那么最终它应该是一个静态类变量吗?
我问,因为每次类的一个实例使用它时创建一个新对象似乎很浪费(因为它始终是相同的).
例:
每次调用时在方法中创建的变量:
public class SomeClass {
public void someMethod() {
final String someRegex = "\\d+";
final Pattern somePattern = Pattern.compile(someRegex);
...
}
}
Run Code Online (Sandbox Code Playgroud)
变量创建一次:
public class SomeClass {
private final static String someRegex = "\\d+";
private final static Pattern somePattern = Pattern.compile(someRegex);
public void someMethod() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
使用后一个代码总是更好吗?
这个答案似乎表明最好使用后面的代码:如何在Java中初始化长度为0的String数组?
绝对不是.
class MyIntegerContainer{
private final int x;
public MyIntegerContainer(int x){
this.x = x;
}
}
Run Code Online (Sandbox Code Playgroud)
如果你创建了不可变的最终x静态,那么所有的实例MyIntegerContainer将共享相同的值,x这对于一个非常好的数据容器是不会的.
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |