¿Es correcto suponer que un objeto Java solo ocupa los 8 bytes para la referencia del objeto siempre que todos sus miembros estén configurados en null
o la definición de miembros ya agota el espacio en la instancia por algún motivo?¿Cuánta memoria usa un objeto Java cuando todos sus miembros son nulos?
En otras palabras, si tengo una gran colección de objetos que deseo que sean eficientes en cuanto a espacio, ¿puedo contar con dejar los miembros sin usar establecidos en null
para reducir la huella de memoria?
Sí, buena pregunta. :) Entonces un campo es equivalente a un puntero C (que también requiere memoria). –
Sí, las variables de los tipos de referencia (clases) son referencias a objetos en el montón, equivalentes a los punteros en C. La memoria se tomaría para el puntero y para el objeto al que apunta. Los tipos primitivos, como int, se almacenan directamente y siempre tienen el mismo tamaño. – Joe