在定义它时,将为非泛型Arraylist保留多少空间

时间:2013-05-21 08:25:49

标签: java

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

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

2 个答案:

答案 0 :(得分:1)

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

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

Object数组只是一个对象引用数组。

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

答案 1 :(得分:0)

Java泛型被删除(未实现)。构造为

的实例
  • new ArrayList()
  • new ArrayList<Object>()
  • new ArrayList<Integer>()

在运行时是相同的。