小编Rex*_*ana的帖子

为什么存储长字符串会导致OOM错误,但将其分解为短字符串列表却不会?

我有一个Java程序,它使用a StringBuilder来从输入流构建一个字符串,并最终在字符串太长时导致内存不足错误.我尝试将其分解为更短的字符串并将其存储在一个中ArrayList,这避免了OOM,即使我试图存储相同数量的数据.为什么是这样?

我怀疑有一个非常长的字符串,计算机必须在内存中找到一个连续的位置,但是ArrayList它可以在内存中使用多个较小的位置.我知道Java中的内存可能很棘手,所以这个问题可能没有直截了当的答案,但希望有人可以让我走上正轨.谢谢!

java string heap-memory out-of-memory

11
推荐指数
1
解决办法
940
查看次数

标签 统计

heap-memory ×1

java ×1

out-of-memory ×1

string ×1