OutOfMemoryError cuando el bloque de código aparentemente no relacionado se comenta

¿Podría alguien explicar por qué este programa arroja unOutOfMemoryError cuando elfor se comenta el bucle? Si no está comentado esto funciona bien.

La excepción lanzada es:

Excepción en el hilo "main" java.lang.OutOfMemoryError: espacio de almacenamiento dinámico de Java

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 < 10; 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();
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta