java - 在函数参数中维护大型数据结构(对象)?

标签 java scala

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

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

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

我想这可能会导致堆内存不足错误?因为具有这些 HashMap 字段的类是对象,它们在堆上分配......但是函数参数的空间保留在堆栈上的某个帧内......

当然,无论发生什么错误,设计都应该使传递的变化对象尽可能“小”,以避免内存泄漏,对吗?

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

最佳答案

据我所知,Java 和 Scala 都使用引用,而不是实际的

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

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

关于java - 在函数参数中维护大型数据结构(对象)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16950898/

相关文章:

scala - 将Intellij Idea scala静态分析规则导出到scalastyle_configuration文件中

java - 在java中使用scala对象?

java - 使用java类启动线程列表后如何识别并重新启动已被杀死的线程?

java - jpanel 中的 jscrollpane

java - Java 中的简单数学/转换错误我一直在想念?

scala - 如何仅在条件为真时返回?

scala - DMLC 在 Spark-1.6.1 上的 XGBoost-4j

java - 检查 Firebase Cloud Messaging 上的新通知。 (流式细胞术)

java - 尽管发生异常/错误,如何允许程序继续运行?

scala - 在 Play Scala 中使用迭代器和枚举器将数据流式传输到 S3