List[I] ints=new ArrayList();
for(int i=0;i<10000;i++){
ints.add(i);
}
gpt-3.5 的回答:
在 64 位的 Java 虚拟机中,一个空的 ArrayList 对象通常占用 24 字节。
在 Java 中,一个 Integer 对象通常占用 16 字节(在 32 位和 64 位的 Java 虚拟机中都是如此)。
在 64 位的 Java 虚拟机中:
ArrayList 对象本身:24 字节
整数对象:16 字节 × 10000 = 160000 字节
总内存占用:24 字节 + 160000 字节 = 160024 字节
也就是说,一个仅保存了 1 万个整数的 ArrayList 就要占 160KB 服务器内存?
一个保存了 10 万个整数的 ArrayList 就要占 1.6MB 内存?
怎么与实际感觉似乎不太相符,
有能用 gpt 4.0 的富哥问下这答案对吗?
另外,ArrayList 中保存的整数占内存数与数字大小有关系吗?(比如保存 1 万个 1 亿+的数字,与保存 1-10000 有区别吗?)