【发布时间】:2015-04-28 05:07:49
【问题描述】:
在研究链表实现时,我需要澄清引用和对象如何存储在堆栈和堆中,以用于对象自身具有引用的这种场景,
public class MyLinkedList {
private Node head;
private int listCount;
public MyLinkedList() {
head = new Node("0");
listCount = 0;
}
public void add(Object data) {
Node nodeTemp = new Node(data);
Node nodeCurr = head;
while (nodeCurr.getNext() != null) {
nodeCurr = nodeCurr.getNext();
}
nodeCurr.setNext(nodeTemp);
listCount++;
}
}
public class LinkedListMain {
public static void main(String[] args) {
MyLinkedList ls = new MyLinkedList();
ls.add("1");
}
现在 MyLinkedList 对象由堆栈中的“ls”引用引用,而 MyLinkedList 它自身位于堆中。我明白了。
但是从 MyLinkedList 构造函数中,当我们创建由“头”引用引用的新节点时,那个“头”引用存储在哪里?我的疑问是,由于“节点头”在(属于)MyLinkedList 对象内部,“头”是否存储在堆栈中与“ls” 或是一种 在 MyLinkedList 对象中?
【问题讨论】:
-
head 是 Node 的引用。 Node是用户定义的类吗?
标签: java