我刚刚阅读了《SUN Java 代码规范》(非常好的文档),并且我读到了下面的内容:
6.3 初始化:尽量在声明变量时初始化局部变量。如果变量的初始值取决于某些计算先进行,则不初始化该变量是唯一的理由。
我想知道类变量是否有相同的建议,例如我有以下代码:
6.3 初始化:尽量在声明变量时初始化局部变量。如果变量的初始值取决于某些计算先进行,则不初始化该变量是唯一的理由。
我想知道类变量是否有相同的建议,例如我有以下代码:
public class NNmatrix {
protected ArrayList<ArrayList<Double>> matrix; // line 1
public NNmatrix() {
matrix = new ArrayList<ArrayList<Double>>(); // line 2
}
/**
*
* @param otherMtrx
*/
public NNmatrix(final ArrayList<ArrayList<Double>> otherMtrx) {
final int rows = otherMtrx.size();
matrix = new ArrayList<ArrayList<Double>>(rows); // line3
for (int i = 0; i < rows; i++) {
this.matrix.add(new ArrayList<Double>(otherMtrx.get(i)));
}
}
}
编辑代码# 如果我在声明变量时初始化它(在类中),我将删除“第2行”并保留“第3行”,因为这会涉及性能问题# 就像您所知道的那样,在内存中保留(行)。
问题是:
- 这样做是一个好习惯还是仅适用于方法内部等局部变量的初始化问题?
- 如果可以,我想知道如果我进行了EDITING CODE#,则初始化@ line 3或初始化@ line 1将首先出现?