如何处理java中设置的哈希值的内存不足错误

时间:2015-02-20 07:56:01

标签: java memory-management

我在我的程序中使用HashSet,随着集合的增长,我得到了错误"线程中的异常" main" java.lang.OutOfMemoryError:Java堆空间"。我有32位操作系统和4Gb内存。 JVM无法在eclpse中的VM参数中分配超过1500Mb。在这种情况下该怎么办?

2 个答案:

答案 0 :(得分:0)

您需要增加堆空间内存以增加堆空间,您可以在命令行上使用java -Xms -Xmx。默认情况下,值为32米和128米。

答案 1 :(得分:0)

JVM只能分配1500Mb的事实是一个'功能' 32位JVM。要超越这个范围,您需要使用64位JVM,但您还需要64位操作系统和硬件。

然而,你不太可能真的需要这么多记忆。

您可能有充分理由使用SetMap s(例如查找,不重复等),但如果您没有这些要求,那么您将会能够通过使用int的数组来节省内存,尽管这显然还有其他含义,例如如何找到要存储的元素。