La asignación y el reciclaje de memoria de Java se completan automáticamente por el proceso de recolección de basura JVM. A diferencia de C, los desarrolladores de Java no necesitan escribir su propio código para implementar la recolección de basura. Esta es una de las muchas características que Java es muy popular entre todos y puede ayudar a los programadores a escribir mejor programas Java.
Este tutorial es la primera parte de la serie. Los términos básicos se explicarán primero, como JDK, JVM, JRE y HotSpotVM. A continuación, presentaremos la estructura JVM y la estructura de memoria del montón Java. Comprender estos conceptos básicos es importante para comprender el conocimiento posterior del reciclaje de basura.
Términos de Java clave
Javaapi: una serie de bibliotecas encapsuladas que ayudan a los desarrolladores a crear aplicaciones Java.
Java Development Toolkit (JDK): una serie de herramientas para ayudar a los desarrolladores a crear aplicaciones Java. JDK contiene herramientas para compilar, ejecutar, empaquetar, distribuir y monitorear aplicaciones Java.
Java Virtual Machine (JVM): JVM es una estructura de computadora abstracta. Los programas Java se escriben de acuerdo con las características del JVM. El JVM es específico del sistema operativo y puede traducir las instrucciones de Java en instrucciones que son sistemas subyacentes y ejecutando. JVM asegura la plataforma de Java independiente.
Java Runtime Environment (JRE): JRE incluye la implementación de JVM y la API Java.
Máquina virtual de Javahotspot
Cada implementación de JVM puede adoptar un enfoque diferente para implementar el mecanismo de recolección de basura. Antes de la adquisición de Sun, Oracle usó JRockitJVM y después de la adquisición, se utilizó HotSpotJVM. Actualmente, Oracle tiene dos implementaciones JVM y las dos implementaciones JVM se fusionarán en una después de un período de tiempo.
HotSpotJVM es parte de los componentes centrales actuales del estándar de la plataforma oraclese. En este tutorial de recolección de basura, comprenderemos los principios de recolección de basura basados en máquinas virtuales de puntos de acceso.
Arquitectura JVM
La siguiente imagen resume los componentes clave del JVM. En la arquitectura JVM, los dos componentes principales relacionados con la recolección de basura son la memoria del montón y el recolector de basura. La memoria Heap es un área de datos de memoria utilizada para guardar las instancias de objetos en tiempo de ejecución. El recolector de basura también funcionará aquí. Ahora sabemos cómo funcionan estos componentes en el marco.
Memoria de montón java
Es necesario comprender el papel del modelo de memoria JVM que existe en la memoria del montón. En tiempo de ejecución, las instancias de Java se almacenan en el área de memoria del montón. Cuando ya no se hace referencia a un objeto, la condición se elimina de la memoria del montón. En el proceso de recolección de basura, estos objetos se eliminarán de la memoria del montón y el espacio de memoria se reciclará. Las siguientes tres áreas principales de la memoria del montón:
Generación joven
Eden Space (Edenspace, cualquier instancia ingresa al área de memoria de tiempo de ejecución a través de Eden Space)
S0Survivor Space (S0Survivorspace, las instancias que existen durante mucho tiempo se trasladarán del espacio Eden al espacio S0Survivor)
S1Survivor Space (las instancias que existen durante un período de tiempo más largo se trasladarán del espacio S0Survivor al espacio S1Survivor)
Las instancias de generación antiguas serán promovidas de S1 a la tenencia (generación de por vida)
La generación permanente contiene meta información sobre clases, métodos y otros detalles
El espacio de generación permanente se ha eliminado en la función Java 8.
Resumir
Lo anterior es todo el contenido de este artículo presenta brevemente el mecanismo de recolección de basura de Java, y espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!