1

默认情况下,当我们创建一个未指定 size 的 arrayList 时,它会在内存中创建一个包含 10 个元素的数组,但我的问题是,如果我们创建类似 List lst = new ArrayList();

内存中会为 lst 保留多少字节?

4

2 回答 2

1

ArrayList 的默认容量与泛型无关。

如果您不指定其容量,则默认为 10 的容量。将创建一个包含 10 个元素的 Object 数组,并用空值填充。

对象数组只是对象引用的数组。

对象引用的内存成本取决于程序运行的平台(通常在 64 位操作系统上为 8 个字节,在 32 位操作系统上为 4 个字节)。

于 2014-02-02T20:45:32.253 回答
0

Java 泛型被删除(未具体化)。实例构造为

  • new ArrayList()
  • new ArrayList<Object>()
  • new ArrayList<Integer>()

在运行时是相同的。

于 2014-02-02T20:49:35.207 回答