Una pequeña pregunta sobre el rendimiento en una aplicación web Java.Java Collections y Garbage Collector
Supongamos que tengo un List<Rubrique>
listRubriques
con diez objetos Rubrique
.
Un Rubrique
contiene una lista de productos (List<product>
listProducts
) y una lista de clientes (List<Client>
listClients
).
¿Qué ocurre exactamente en la memoria si hago esto:
listRubriques.clear(); listRubriques = null;
Mi punto de vista sería que, ya listRubriques
está vacía, todos mis objetos previamente referenciados por esta lista (incluyendo listProducts
y listClients
) será basura recogida muy pronto. Pero ya que la colección en Java son un poco complicado y ya que tengo problemas de rendimiento bastante con mi aplicación que estoy haciendo la pregunta :)
edición: vamos a suponer ahora que mi objeto de cliente contiene un List<Client>
. Por lo tanto, tengo una especie de referencia circular entre mis objetos. ¿Qué pasaría si mi listRubrique
está configurado en null
? Esta vez, mi punto de vista sería que mis objetos de Cliente se volverán "inalcanzables" y podría crear una pérdida de memoria?
Cuidado: la primera oración describe la implementación actual de Sun JVM. No es una afirmación que sea cierta acerca de Java en general. Sin embargo, el resto de la respuesta parece ser aplicable en general. –
Gracias por la pista, cambié la primera oración. – Mnementh