包含不同类型对象的ArrayLists是否使用不同的内存量?

qwe*_*040 17 java memory arraylist

例如,如果你有

    int a=2; int b=3;
    ArrayList<Integer>integers=new ArrayList<Integer>();
    integers.add(a); integers.add(b);
Run Code Online (Sandbox Code Playgroud)

    String c="cow"; String d="deer";
    ArrayList<String> strings= new ArrayList<String>();
    strings.add(c); strings.add(d);
Run Code Online (Sandbox Code Playgroud)

他们会采取不同的记忆吗?任何帮助/答案都将受到高度赞赏,谢谢!

Hov*_*els 48

ArrayLists本身只不过是一组引用,它们占用相同数量的内存(如果大小相同),无论它们所拥有的对象类型如何.但是,ArrayList引用的项目都会像您期望的那样占用不同的内存量.


Abi*_*nha 10

ArrayLists只是引用的集合,因此ArrayList的大小不依赖于它指向的对象的类型.因此,ArrayList的内存不依赖于引用对象类型.


mor*_*ano 7

在你的情况下,理论上,他们会消耗相同数量的内存,在运行时泛型"不存在",两个数组实际上都是对象数组.