RAM内存中的链表



当我在学习java和数据结构时,我了解了LinkedList是什么以及它如何在声明后增加它的最大大小。所以我想知道这在内存中是如何工作的,它只是跳到下一个可用的插槽吗?例如,如果它最初使用插槽11、12和13,并且我增加了它,它是否只使用下一个可用的插槽,例如19?

这可能相当愚蠢,但我正在学习c++,并学习了一些关于代码如何与RAM交互的东西,以及不同类型如何具有不同的将要读取的字节,基本的东西。当我了解它时,我对LinkedLists如何与内存交互感到困惑。

通常链表的实现看起来像这样:

class LinkedList {
Node head; // head
class Node {
int data;
Node next; // link to the next node
Node(int d) { 
data = d; 
}
}
}

所以节点类是一个存储在堆上的引用类型(用于运行时Java对象的动态内存分配),所以Node实例将被分配在任意位置(由JVM使用的内存分配算法决定)在应用程序生命周期内分配的其他对象(我假设你称之为"插槽"),所以它们不会占用连续空间在一般情况下(例如数组将做1)。


1需要讨论基本类型和对象以及存储在哪里和如何存储

最新更新