No dudes en compartir nuestra web y códigos con tus amigos, ayúdanos a aumentar nuestra comunidad.
Solución:
Es la capacidad de java.util.ArrayList multiplicada por el tamaño de referencia (4 bytes on 32bit, 8bytes on 64bit) + [Object header + one int and one references]
.
La capacidad es diferente (always >=)
que el tamaño pero quieres que sean iguales, llama trimToSize()
Técnicamente hablando el ArrayList
tiene un Object[]
donde almacena los datos.
Puedes usar algo como Runtime.getRuntime().totalMemory()
y su contraparte Runtime.getRuntime().freeMemory()
para obtener una suposición educada, pero eso no tiene en cuenta los objetos que se procesan en GC entre llamadas.
Para eso sirve un generador de perfiles de memoria. Te lo dirá por tu plataforma. El tamaño mínimo para una ArrayList vacía es de 64 bytes. Es muy probable que no necesite saber esto a menos que tenga 100 000 elementos o más.
Finalizando este artículo puedes encontrar las interpretaciones de otros desarrolladores, tú además puedes mostrar el tuyo si lo crees conveniente.