我在我的程序中使用HashSet,随着集合的增长,我得到了错误"线程中的异常" main" java.lang.OutOfMemoryError:Java堆空间"。我有32位操作系统和4Gb内存。 JVM无法在eclpse中的VM参数中分配超过1500Mb。在这种情况下该怎么办?
答案 0 :(得分:0)
您需要增加堆空间内存以增加堆空间,您可以在命令行上使用java -Xms -Xmx。默认情况下,值为32米和128米。
答案 1 :(得分:0)
JVM只能分配1500Mb的事实是一个'功能' 32位JVM。要超越这个范围,您需要使用64位JVM,但您还需要64位操作系统和硬件。
然而,你不太可能真的需要这么多记忆。
您可能有充分理由使用Set
和Map
s(例如查找,不重复等),但如果您没有这些要求,那么您将会能够通过使用int
的数组来节省内存,尽管这显然还有其他含义,例如如何找到要存储的元素。