我正在阅读Java LinkedList的源代码,注意到LinkedList
的构造函数是这样的:
public LinkedList() {
header.next = header.previous = header;
}
将为此初始化分配多少空间, header 似乎通过指向自身来创建无限递归。
最佳答案
它在 header
实例变量的初始化中分配单个节点:
private transient Entry<E> header = new Entry<E>(null, null, null);
您引用的构造函数中的代码没有分配内存;它只是将指针设置为初始状态。不存在“无限递归”,因为内部遍历迎合了这种情况。
关于java - Java LinkedList 会分配多少空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13557884/