В первом коде компилятор выдает OutOfMemoryError, а во втором нормально пережовывает. Различия только в инициализации line. Может кто-нибудь объяснить как на мой взгляд два абсолютно одинаковых кода имеют столь весомые различия?
static {
String line;
try {
FileReader fr = new FileReader(Statics.FILE_NAME);
BufferedReader br = new BufferedReader(fr);
line = br.readLine();
while (line != null) {
lines.add(line);
}
br.close();
fr.close();
} catch (FileNotFoundException fN) {
fN.printStackTrace();
} catch (IOException e) {
System.out.println(e);
}
}
static {
String line;
try {
FileReader fr = new FileReader(Statics.FILE_NAME);
BufferedReader br = new BufferedReader(fr);
while ((line = br.readLine()) != null) {
lines.add(line);
}
br.close();
fr.close();
} catch (FileNotFoundException fN) {
fN.printStackTrace();
} catch (IOException e) {
System.out.println(e);
}
}
}