为了避免使用全局变量,我在一些函数中传递数据结构。
Scala 中的数据结构基本上是一个具有多个(可变) HashMap 类型字段的类。
然后我想知道这些 HashMap 是否有越来越大的条目( HashMap 中的值可能是一些对象的集合),是否会导致堆栈溢出或堆内存不足?
我想这可能会导致堆内存不足错误?因为具有这些 HashMap 字段的类是对象,它们在堆上分配......但是函数参数的空间保留在堆栈上的某个帧内......
当然,无论发生什么错误,设计都应该使传递的变化对象尽可能“小”,以避免内存泄漏,对吗?
感谢您的任何评论或见解!
最佳答案
据我所知,Java 和 Scala 都使用引用,而不是实际的值。
因此,您传递的永远不是结构的副本,而是结构引用的副本。
如果您使用 .Net(通常是 C#),您需要问自己这些问题,因为 .Net 与 native C++ 一样,支持两种语义:对象存储:值(value)和引用。
关于java - 在函数参数中维护大型数据结构(对象)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16950898/