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

vkc1a9a2  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(296)

为了避免使用全局变量,我在一些函数中传递数据结构。
数据结构基本上是一个类,在scala中有几个类型(可变)hash map的字段。
然后我想知道这些散列Map是否有越来越多的大条目(散列Map中的值可能是一组对象),它会导致堆栈溢出还是堆内存不足?
我想它可能会导致堆外内存错误?因为拥有这些哈希Map文件的类是(are)对象,这些对象在堆上分配….但是函数参数的空间保持在堆栈的某个帧中。。。
当然,对于任何错误,设计都应该使传递的变化对象尽可能“小”,以避免内存泄漏,对吗?
感谢您的任何意见或见解!

nbnkbykc

nbnkbykc1#

afaikjava和scala都使用引用而不是实际值。
因此,您传递的内容绝不是结构的副本,而是对结构的引用的副本。
如果使用.net(通常是c++),您需要问自己这些问题,因为.net与本机c++一样,支持两种对象存储语义:值和引用。

相关问题