1 、finalizar ()
1.1. El finalize () de cualquier objeto solo se puede llamar una vez . Si GC se ejecuta nuevamente , el finalize () del objeto no se ejecutará nuevamente ;
2. Área de método (generación permanente) reciclaje
2.1 Reciclaje principal: constantes abandonadas, categorías inútiles;
3. Algoritmo GC :
3.1 Mark-clear
Primero marque toda la memoria que necesita ser reciclada, y luego recíclela uniformemente;
3.2, algoritmo de copia
Divida la memoria disponible en 2 bloques de igual tamaño, y solo use uno de ellos a la vez. Cuando se agota un bloque, copie los objetos supervivientes en otro bloque, y luego limpie el único usado;
Escena:
Reciclando la nueva generación (Eden, Survivor):
La máquina virtual predeterminada Eden of the Hotspot: Survivor = 8: 1
Divide la memoria en un Eden más grande y 2 Survivor más pequeños ---> Eden y un Survivor se usan cada vez
---> GC, copia los objetos sobrevivientes de Eden y Survivor a otro Survivor a la vez, y limpia el Edén y el Superviviente usados de una vez;
3.3. Acabado de marcado
Marque primero toda la memoria que necesita ser reclamada, y luego mueva todos los objetos supervivientes a un extremo, y borre directamente la memoria fuera del límite final;
Escena:
Reciclando la vieja generación
3.4 Algoritmo de colección generacional
De acuerdo con el ciclo de vida del objeto, la memoria se divide en varios bloques, y el montón general de Java se divide en la nueva generación y la generación anterior, y se usa el algoritmo GC apropiado de acuerdo con las características de cada generación;