Quando rimuovo il ciclo for, viene visualizzato un errore OutOfMemoryError. Quando uso per loop non ottengo errore. Qualcuno può aiutarmi a capire questo comportamento?L'aggiunta del ciclo For impedisce l'errore OutOfMemoryError
public class JavaMemoryPuzzlePolite {
private final int dataSize = (int) (Runtime.getRuntime().maxMemory() * 0.6);
public void f() {
{
System.out.println(dataSize);
byte[] data = new byte[dataSize];
}
for (int i = 0; i < 1; i++) {
System.out.println("Please be so kind and release memory");
}
System.out.println(dataSize);
byte[] data2 = new byte[dataSize];
}
public static void main(String[] args) {
JavaMemoryPuzzlePolite jmp = new JavaMemoryPuzzlePolite();
jmp.f();
}
}
Vedere anche http://stackoverflow.com/a/938080/545127 – Raedwald