是否由JDK优化的ArrayList <Integer>执行类似int []?

rip*_*234 7 java

我们被告知Java的ArrayList对整数的效率较低,因为列表实际上包含指针,而int数组包含整数,从而避免了内存分配和访问.

我的问题是JDK/JIT编译器是否优化了这种低效率?它具有结束这些实现的所有信息在功能上是等效的,因此它也可以用一个int []支持的实现替换ArrayList.

Luk*_*rer 11

不,它不能,因为你可以存储null在ArrayList中.

编辑:哦,它也不能,因为泛型在编译时被擦除 - 在运行时,JRE无法区分ArrayLists的元素类型.IOW,它不仅仅是null- 你可以存储任何对象ArrayList<Integer>.