【发布时间】:2014-05-28 16:39:12
【问题描述】:
假设我们正在创建一个 ArrayList 对象,如
ArrayList<User> list=new ArrayList<User>();
System.out.println(list.size()); // it will be 0 at this time
现在我的问题是,当在堆中创建此列表对象时,它将分配什么内存。如果列表的大小动态增长,我想知道在运行时如何分配此内存大小。
【问题讨论】:
-
ArrayList的初始容量为 10。 10*(引用User对象的内存大小)+(开销)可能是初始分配的内存 -
@CyberneticTwerkGuruOrc 从技术上讲,这将是 10 *(引用的内存大小)+(开销)
-
好的@CyberneticTwerkGuruOrc,但你能告诉我这是如何工作的吗?我的意思是在运行时如何选择??
-
@user3580294 啊,是的,你是对的。让我编辑一下
-
您的问题令人困惑(不清楚)。
size()方法与 JVM 为您的列表分配的实际内存没有任何关系。您可能应该先阅读一下docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html,然后再提出一些明确的问题。
标签: java memory-management collections arraylist