java中的linkedList的序列化和反序列化

时间:2015-05-08 05:40:32

标签: java serialization linked-list

我序列化了用户定义的链表类的对象,因为该列表的每个节点都在堆中获取内存位置,而反序列化是否已经为特定节点占用了内存位置,例如

enter image description here

如果节点2的内存即200已被占用,则节点1如何知道它以及列表如何反序列化? 或者在java中,内存分配以不同的方式发生。

2 个答案:

答案 0 :(得分:2)

JVM负责对象在内存中的管理。在执行任何GC之后,可以移动在内存中分配的对象,因此LinkedList实际上并未指向固定地址,而是参考

Java没有pointers,只引用对象(安全引用)。引用类似于指针,因为它指向一个变量,一个对象,但是您无法查看或编辑此引用的地址内存(例如,与C不同)。

答案 1 :(得分:1)

一般来说,您不必在Java中手动执行有关堆的任何事情。

序列化不应影响堆,除非您对序列化节点有一些引用。

链接列表中的两个节点不需要知道其他节点在内存中的位置。

希望这能回答你的问题。