【发布时间】:2011-04-12 18:03:04
【问题描述】:
为什么下面一行
Object[] objects = new Object[10000000];
导致 JVM 使用大量内存(~40M)?分配数组时有什么方法可以知道VM的内部工作原理吗?
【问题讨论】:
-
内存是多少?您预计会消耗多少?
-
@Malcolm:很好的问题。这些天来,我们不认为 40MB 就是那么多内存,是吗?然而,回到过去......
-
嗯,刚刚在答案中说过,如果它是 40 MB,它还不算“太多”,对于如此大长度的引用数组来说,这是一个正常的数量。但如果是数倍以上,那将是一个完全不同的问题。
-
真正的问题不是“它是不是太大了”,而是“它做它做的事情是否有用”,在实现一些你不能用这么大的程序功能方面大批?总的来说,我怀疑这么大的数组的实用性,尤其是指向对象的指针。
-
但是你下次可以用更外交的方式说出来;-)