Khi tôi loại bỏ vòng lặp for, tôi nhận được một lỗi OutOfMemoryError. Khi tôi sử dụng cho vòng lặp tôi không nhận được lỗi. Bất cứ ai có thể giúp tôi hiểu được hành vi này?Thêm vào vòng lặp ngăn chặn 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();
}
}
Xem thêm http://stackoverflow.com/a/938080/545127 – Raedwald