La nueva palabra clave asigna memoria en el montón de Java. El montón es el grupo principal de memoria, accesible para toda la aplicación. Si no hay suficiente memoria disponible para asignar ese objeto, la JVM intenta recuperar algo de memoria del montón con una recolección de elementos no utilizados. Si aún no puede obtener suficiente memoria, se lanza un OutOfMemoryError y se cierra la JVM.
El montón se divide en varias secciones diferentes, llamadas generaciones. A medida que los objetos sobreviven a más recolecciones de basura, son promovidos a diferentes generaciones. Las generaciones más viejas no son recolectadas con tanta frecuencia. Debido a que estos objetos ya han demostrado tener una vida más larga, es menos probable que se recolecten basura.
Cuando los objetos se construyen por primera vez, se asignan en el espacio Eden. Si sobreviven a una recolección de basura, son promovidos a Survivor Space, y si viven lo suficiente allí, se asignan a la Generación Tenida. Esta generación es basura recolectada con mucha menos frecuencia.
También hay una cuarta generación, llamada Generación Permanente, o PermGen. Los objetos que residen aquí no son elegibles para la recolección de elementos no utilizados y, por lo general, contienen un estado inmutable necesario para que se ejecute la JVM, como las definiciones de clase y el conjunto constante de cadenas. Tenga en cuenta que se planea eliminar el espacio PermGen de Java 8 y se reemplazará con un nuevo espacio llamado Metaspace, que se guardará en la memoria nativa. referencia :http://www.programcreek.com/2013/04/jvm-run-time-data-areas/