【发布时间】:2010-09-19 02:25:48
【问题描述】:
我正在尝试将大约 50,000 个对象(因此 50,000 个键)插入到 java.util.HashMap<java.awt.Point, Segment>。但是,我不断收到 OutOfMemory 异常。 (Segment 是我自己的类 - 非常轻量级 - 一个 String 字段和 3 个 int 字段)。
线程“主”java.lang.OutOfMemoryError 中的异常:Java 堆空间
在 java.util.HashMap.resize(HashMap.java:508)
在 java.util.HashMap.addEntry(HashMap.java:799)
在 java.util.HashMap.put(HashMap.java:431)
在 bus.tools.UpdateMap.putSegment(UpdateMap.java:168)
这似乎很荒谬,因为我看到机器上有大量可用内存 - 可用 RAM 和用于虚拟内存的 HD 空间。
Java 是否有可能在一些严格的内存要求下运行?我可以增加这些吗?
HashMap 有什么奇怪的限制吗?我将不得不实施我自己的吗?还有其他值得一看的课程吗?
(我在具有 2GB RAM 的 Intel 机器上运行 OS X 10.5 下的 Java 5。)
【问题讨论】:
标签: java hashmap out-of-memory