Me preguntaba cuál sería la ventaja de que una variable de clase almacene una referencia a un objeto en lugar de almacenar el objeto directamente en su ubicación de memoria.
¿Tiene que ver con problemas de memoria o es un problema de seguridad?
Traté de mirar alrededor, no pude encontrar esta pregunta.
Gracias.
Respuestas
4 para la respuesta № 1Java almacena el Objeto en la memoria del montón, pero desde el código necesitamos acceder a ese Objeto usando algún manejador, y así es la referencia
Además, cuando GCing cuando no hay un objeto de referencia activo ya no es necesario y estará listo para GC
2 para la respuesta № 2
Es más acerca de la memoria, mientras que al copiar o pasar el objeto a la función, no necesita crear / copiar un objeto que acaba de copiar como referencia.
Por ejemplo:
Class1 a = new Class1();
Class1 b = a;
Si no almacena referencias, en ese caso deberá crear otro Objeto para b que cause duplicidad.
En segundo lugar,
public void(Class1 obj){
//Some operation to Object
}
Si pasa todo el Objeto en lugar de la referencia, nuevamente necesitará memoria para contener el Objeto copiado.
1 para la respuesta № 3
Si no tuviera referencias, sería imposible implementar la mayoría de las estructuras de datos. Considere las listas doblemente enlazadas, o un árbol donde los nodos contengan enlaces principales.