为什么在将 50,000 个对象插入 HashMap 时会出现 OutOfMemoryError?
2022-09-03 16:56:45
我正在尝试将大约50,000个对象(因此是50,000个键)插入到.但是,我不断收到一个 OutOfMemory 异常。(是我自己的类 - 非常轻的重量 - 一个字段和3个字段)。java.util.HashMap<java.awt.Point, Segment>
Segment
String
int
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.HashMap.resize(HashMap.java:508) at java.util.HashMap.addEntry(HashMap.java:799) at java.util.HashMap.put(HashMap.java:431) at bus.tools.UpdateMap.putSegment(UpdateMap.java:168)
这似乎很荒谬,因为我看到机器上有足够的内存可用 - 无论是在可用RAM中还是在虚拟内存的HD空间中。
Java是否有可能在一些严格的内存要求下运行?我可以增加这些吗?
有没有一些奇怪的限制?我必须实现我自己的吗?还有其他值得一看的课程吗?HashMap
(我在具有 2GB RAM 的 Intel 机器上运行 OS X 10.5 下的 Java 5。