当我将一个2MB对象Foo bar
转换为Collection<Foo>
时,现在有4MB的Foo
s在内存中还是只有2MB?添加项目到集合的实际内存影响
例如
Foo twoMBObject = new Foo();
ArrayList<Foo> bax = new ArrayList<>();
bax.add(twoMBObject);
/* Do we now have bax-twoMBObject & twoMBObject or just twoMBObject
and a pointer to twoMBObject in the list? */
编辑
我有一个很难弄清楚如果建议重复的问题实际上是重复的。虽然接受的答案不能回答这个问题,但提供的答案之一的确如此。我不知道如何在这里继续。
集合包含对象的引用。所以2 MB内存 – algor
不用担心,它只有2 MB。您添加对列表的引用,而不是克隆的对象 – AdamSkywalker
[是否将附加项/删除项重新分配给内存?](http://stackoverflow.com/questions/34617193/does-appending-removing-entries -java-list-reallocate-memory) – Raedwald