相关疑难解决方法(0)

为什么java.util.Arraylist #clear以OpenJDK中的方式实现?

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/ArrayList.java#473

public void clear() {
    modCount++;

    // Let gc do its work
    for (int i = 0; i < size; i++)
        elementData[i] = null;

    size = 0;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么他们必须通过支持数组{O(n)}进行循环才能使每个元素有资格进行垃圾回收,因为它们可以重新初始化后备数组,从而丢弃对整个数组的引用{ O(1)}并使其有资格进行垃圾收集?O(n)表现对clear()我来说似乎不太好或者我错过了什么?

java performance openjdk

7
推荐指数
1
解决办法
302
查看次数

标签 统计

java ×1

openjdk ×1

performance ×1