默认情况下,当我们创建一个arrayList而没有指定它的大小时,它会在内存中创建一个包含10个元素的数组,但我的问题是,如果我们创建类似的东西 List lst = new ArrayList();
内存中将为lst保留多少字节?
答案 0 :(得分:1)
ArrayList的默认容量与泛型无关。
如果未指定其容量,则默认容量为10.将创建包含10个元素的Object数组,并填充空值。
Object数组只是一个对象引用数组。
对象引用的内存开销取决于程序运行的平台(64位操作系统通常为8个字节,32位操作系统为4个字节)。
答案 1 :(得分:0)
Java泛型被删除(未实现)。构造为
的实例new ArrayList()
new ArrayList<Object>()
new ArrayList<Integer>()
在运行时是相同的。