1

为了避免使用全局变量,我在一些函数中传递数据结构。

数据结构基本上是一个在 Scala 中具有多个类型(可变)哈希映射字段的类。

然后我想知道这些哈希映射是否有越来越大的条目(哈希映射中的值可能是一组一些对象),它会导致堆栈溢出或堆内存不足吗?

我想这可能会导致堆内存不足错误?因为具有这些哈希映射文件的类是(是)对象,它们是在堆上分配的......但是函数参数的空间保持在堆栈上的某个框架内......

当然,对于任何错误,设计都应该使传递的变化对象尽可能“小”以避免内存泄漏,对吗?

感谢您的任何评论或见解!

4

1 回答 1

2

AFAIK Java 和 Scala 都使用引用而不是实际

因此,您传递的绝不是结构的副本,而是对结构的引用的副本

如果您使用.Net(通常是C# ),您将需要问自己这些问题,因为.Net 与原生 C++ 一样,支持对象存储的两种语义:值和引用

于 2013-06-05T22:30:55.093 回答