Bueno, he desarrollado una aplicación Java que usa varias relaciones de objetos que hacen que el uso de la memoria sea demasiado caro. No tengo experiencia en la administración de la memoria Java porque el diseño de la aplicación dificulta la destrucción de objetos y la utilización del espacio previamente borrado. Por ejemplo, estoy usando Observer y patrones MVC.Cómo destruir objetos Java?
Por lo tanto, la teoría dice que ..
Un objeto se puede elegir para la recolección de basura o GC si no es accesible desde cualquier hilo en vivo o cualquier referencia estática
En otras palabras, puede decir que un objeto se vuelve elegible para la recolección de basura si todas sus referencias son nulas.
Pero, en mi corta experiencia, me resulta demasiado difícil destruir todas las referencias de objetos que quiero eliminar de la memoria (por ejemplo, cuando un marco está cerrado) cuando tiene un escenario como el mío, donde se pone No sé cuántas referencias existen en sus clases.
De acuerdo con este contexto, ¿cómo puedo tratar la destrucción de objetos cuando hay múltiples referencias a ella? o ¿cómo necesito administrar la memoria cuando tienes referencias complejas entre sí?
¡Entendido! pero ... ¿cómo puedo aislar un objeto cuando podría agregarse (por ejemplo) en una lista de arrays múltiple? Establecer 'object = null' eliminará todas las referencias? – manix
@manix: no, no lo hará. eso simplemente anularía la referencia llamada 'objeto' en el alcance actual. Debe eliminar este objeto de todas estas listas o de cualquier otro contenedor. – haylem
@halem ¿Las listas de matrices múltiples son de corta o larga duración? Si son de corta vida, entonces no hay problema. Una vez que el arraylist ya no es accesible, el recolector de basura hará su magia. OTH si el arraylist es de larga vida, entonces todos sus elementos serán alcanzables durante su ciclo de vida a menos que haga algo. Recomiendo listas de arreglos de vida corta. – emory