La versión muy corta de respuestas son:
¿Cuál es la colección de Java basura por todo acerca?
GC es un mecanismo de gestión de memoria donde el sistema (la JVM en este caso) es responsable de recuperar automáticamente la memoria que ya no está en uso.
¿Cómo se implementa?
Existen varias formas de implementarlo. Una descripción simple es que cada parte de la memoria que se asigna se rastrea. periódicamente, el sistema verifica las piezas asignadas para ver si alguna parte del programa (las variables) aún puede alcanzar la memoria. Cualquier memoria que no se puede alcanzar se reclama.
¿Cuándo y cómo se llama?
Esto también se deja hasta la implementación. La única garantía que tiene en Java es que antes de lanzar un OutOfMemoryError, el sistema intenta recuperar la memoria. Esperaría que la mayoría de las implementaciones de GC también intenten hacer una recopilación antes de solicitar al sistema operativo subyacente más memoria. En general, habrá un hilo de fondo que se ocupa de ejecutar el recopilador.
¿Qué algoritmos se siguen para recuperar memoria?
Hay varias posibles. Mira los artículos que otros publicaron como punto de partida para eso.
Voy a tener que preparar una respuesta larga, pero hay un montón (sin doble sentido) de diferentes tipos de algoritmos de GC y la semántica. – Xailor
+1 para enlace maravilloso :-) –
útil - https://www.cubrid.org/blog/understanding-java-garbage-collection – roottraveller