Java中ArrayList的内存大小是多少

mag*_*nes 7 java memory size arraylist

我有一个ArrayList<Obj>,我想知道它使用了多少内存.

Obj是变体,因此,并不像根据对象的大小乘以数组中的元素数量那么容易.

bes*_*sss 21

它是java.util.ArrayList的容量乘以引用大小(4 bytes on 32bit, 8bytes on 64bit) + [Object header + one int and one references].

容量(always >=)与大小不同,但你想让它们相等,请致电trimToSize()

从技术上讲,它ArrayList有一个Object[]存储数据的地方.


Dan*_*olo 5

您可以使用类似的东西Runtime.getRuntime().totalMemory()和它的对应物Runtime.getRuntime().freeMemory()来获得有根据的猜测,但这并不能解释在调用之间使用GC的对象.