微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java,为什么不自引用类分配无限内存?

如何解决Java,为什么不自引用类分配无限内存?

我正在学习单链表。在我下面提供的示例的第 5 行,是调用自引用类的示例。我觉得无限量被分配给 next,因为当 Java 编译器评估 Node 的大小时,它递归地遍历第 5 行,以确定为 Node 分配多少内存。我对第 5 行有什么误解。

你能解释一下自引用类吗?

有多少内存分配给 next 变量?

为什么第 5 行有效?我认为无限递归循环是无效的。

self referential class

解决方法

您在构造函数中分配给“next”的是另一个对象“n”(在本例中为另一个节点)的内存地址。

对象变量只是指向内存堆中真实对象的引用(为 JVM 分配的 RAM 中的一个段)。

从概念上讲,您可以将其作为坐标、数字进行推理。还认为 'n' 可能是 'null',这意味着 next 现在不会引用任何对象。

为了帮助您理清思路,您正在创建一个“实例”,其中包含对同一类的另一个“实例”的引用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。