Java 链表中的每个节点是否占用相同的空间?
我知道linkedlist中的每个节点都由Java 链表中的每个节点是否占用相同的空间?,java,object,linked-list,nodes,Java,Object,Linked List,Nodes,我知道linkedlist中的每个节点都由val和next节点组成。我的直觉是头部将比尾部占据更多的空间。因为头引用了它的下一个节点,而尾的下一个节点是空的。或者列表中的所有节点是否占用相同的空间量?linkedlist中的每个节点将占用相同的内存量。如果我们在linkedlist中定义一个节点,如下所示: class Node{ int val; Node next; } 认识到,除了数据之外,每个节点只包含对其后面节点的引用。即使是head节点也只包含对其后面的节点的引用。您可
val
和next
节点组成。我的直觉是头部
将比尾部
占据更多的空间。因为头
引用了它的下一个节点,而尾
的下一个节点是空的。或者列表中的所有节点是否占用相同的空间量?linkedlist中的每个节点将占用相同的内存量。如果我们在linkedlist中定义一个节点,如下所示:
class Node{
int val;
Node next;
}
认识到,除了数据之外,每个节点只包含对其后面节点的引用。即使是head节点也只包含对其后面的节点的引用。您可以通过从头部开始迭代下一个节点来遍历整个列表,但是每个节点包含固定数量的数据(它所包含的数据和对其邻居的引用)。如果每个节点中存储的数据类型的大小是固定的,则每个节点的大小都相同。linkedlist中的每个节点将占用相同的内存量。如果我们在linkedlist中定义一个节点,如下所示:
class Node{
int val;
Node next;
}
认识到,除了数据之外,每个节点只包含对其后面节点的引用。即使是head节点也只包含对其后面的节点的引用。您可以通过从头部开始迭代下一个节点来遍历整个列表,但是每个节点包含固定数量的数据(它所包含的数据和对其邻居的引用)。如果每个节点中存储的数据类型的大小是固定的,那么每个节点的大小都是相同的。我认为您需要了解什么是引用以及它在内存中的表示方式。引用占用相同的固定空间量,无论它引用的是某个实际对象还是根本没有对象(即,
null
)。当然,除非在java中将被引用对象本身占用的空间计算为非空引用占用的空间的一部分(我个人不这么认为),否则链表中的节点大小是固定的。在其他一些语言中,节点可以有不同的大小,例如C中带有a的节点结构,我认为您需要了解什么是引用以及它在内存中的表示方式。引用占用相同的固定空间量,无论它引用的是实际对象还是根本没有对象(即isnull
)。当然,除非在java中将被引用对象本身占用的空间计算为非空引用占用的空间的一部分(我个人不这么认为),否则链表中的节点大小是固定的。在其他一些语言中,节点可以有不同的大小,例如C中的节点结构,