Я только что прочитал коды кода Java ; очень хороший документ кстати. И я прочитал этуjava beginner: инициализация переменных класса
6,3 Инициализация: Попробуйте инициализировать локальные переменные, где они объявлены. Единственная причина не инициализировать переменную , где она объявлена, - это если начальное значение зависит от некоторых вычислений, происходящих в первую очередь.
И мне было интересно, если Class variables
возникли же предложение или нет, например, у меня есть:
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)));
}
}
}
РЕДАКТИРОВАНИЕ CODE # Если бы я инициализировать variable
, где она объявлена (в классе), я бы удалить «строка 2» и оставить «строка 3», потому что проблема с производительностью # резервирование (строки) в памяти, как вы знаете.
Возникает вопрос:
- делает это хорошая практика или инициализация материи применяется только для локальных переменных внутри методов только и т.д.?
- Если все в порядке, я хочу знать, что наступит первым, если я сделал КОД РЕДАКТИРОВАНИЯ # инициализацию @ line 3 или инициализацию @ line 1?
Да, я согласен с вами после того, как у меня появилось больше опыта – 2011-10-06 10:57:28