Dada una agregación de instancias de clase que se refieren entre sí de forma compleja, circular: ¿es posible que el recolector de basura no pueda liberar estos objetos?Referencias circulares en Java
Recuerdo vagamente que esto era un problema en la JVM en el pasado, pero creo que esto se resolvió hace años. sin embargo, alguna investigación en jhat ha revelado que una referencia circular es la razón de una fuga de memoria que ahora enfrento.
Nota: Siempre he tenido la impresión de que la JVM era capaz de resolver referencias circulares y liberar esas "islas de basura" de la memoria. Sin embargo, estoy planteando esta pregunta solo para ver si alguien ha encontrado alguna excepción.
Si no se pudo alcanzar antes, ¿cómo supo que se fue? Me pregunto si hay algún tipo de enlace en el que no esté pensando que pueda hacer que el sistema lo guarde. Un hilo o un oyente. –
¿Cómo supiste si los objetos se recogieron o no cuando se eliminaron todas las referencias a ellos? ¿Eran referencias débiles o tenía un enlace a través de JNI o era algún tipo de objeto en vivo que se puede recopilar incluso cuando todavía está activo? – Brian
El problema fue que cuando fuimos a referencia, ya no estaba. Olvidé los detalles exactos porque fue hace unos meses, pero creo que lo llamábamos a través de un método de RMI. –