Cómo implementar gc forzado
La jvm realiza automáticamente la recolección de basura de Java en lugar de la operación manual, por lo que cuando no hay referencia a un objeto, el objeto está en un estado de ser reciclado por la jvm y no se destruye inmediatamente.
1. ¿Clase? ¿animal? {¿masculino? ¿Electricidad estática? ¿Vacío? principal(Cadena[]?args)? {¿animal? ¿león? =?¿Nuevo? Animal(); System.out.println("¿Principal? ¿Sí? Completado.");}
2. ¿Vacío? finalizar(). {System.out.println("¿Descanso? ¿En? Paz!");}}
El recolector de basura solo puede recuperar objetos que han perdido referencias, por ejemplo
A A 1 = new A[];
al = null
Si llama a System.gc() en este momento, puede reciclar el objeto antes de que A apunte a a1.
Después de la fila de creación de instancias, el objeto Lion nunca se utiliza.
Por lo tanto, como medida de optimización, el compilador de Java puede asignar lion = null directamente después de crear una instancia de esta línea.
Por lo tanto, la función de finalización puede imprimir '¡Descanse en paz! ’ incluso antes de que se emita el SOP. .
No hay pruebas de que esto vaya a suceder, ya que depende de la implementación de la JVM y de la memoria utilizada en tiempo de ejecución.
Si el compilador ve que nunca más se hará referencia a la instancia, puede seleccionarla temprano y liberar el espacio de la instancia.