Capítulo 6. Comprender la Recogida de Basura
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
El entorno Java tiene varias características icónicas o definitorias, y la recolección de basura es una de las más inmediatamente reconocibles.Sin embargo, cuando se lanzó la plataforma por primera vez, existía una considerable hostilidad hacia la GC, alimentada por el hecho de que Java no proporcionaba deliberadamente ninguna forma a nivel de lenguaje de controlar el comportamiento del recolector (y sigue sin hacerlo, incluso en las versiones modernas).1
Esto significaba que, en los primeros tiempos, había cierta frustración por el rendimiento de la GC de Java, y esto alimentaba la percepción de la plataforma en su conjunto.
Sin embargo, la visión inicial de la GC obligatoria y no controlable por el usuario ha sido más que reivindicada, y hoy en día muy pocos desarrolladores de aplicaciones intentarían defender la opinión de que la memoria debe gestionarse a mano. Incluso las versiones modernas de los lenguajes de programación de sistemas (por ejemplo, Go y Rust) consideran que la gestión de la memoria es dominio propio del compilador y del tiempo de ejecución, y no del programador (salvo en circunstancias excepcionales).
La esencia de la recogida de basura de Java es que, en lugar de exigir al programador que conozca el tiempo de vida exacto de cada objeto del sistema, el tiempo de ejecución debe llevar la cuenta de ...