2016-04-30 79 views
0

我有一个很大的XML文件,我使用SAX解析器解析。在处理过程中,我创建了一个具有解析JSON的键和值的大HashMap。Java 8字符串outofmemory错误

根据我的理解,在java 8中,您不需要在运行java应用程序时设置任何Permgen设置,它会在堆中创建字符串,但是我仍然会出现OutOfMemoryError。我的理解是正确的还是我选择了一个错误的解析器?

+0

请填写更多详情。您的堆大小,数据大小以及您认为OOM即将到来的代码位置。 – Abhishek

+0

字符串始终存储在堆中,在Java 8中,MetaSpace替换了PermGenSpace,但这很少有关系:PermGenSpace用于存储类声明,虽然我对MetaSpace不是很了解,但我很确定您很少需要调整它 – Aaron

+0

嗨亚伦和阿布舍克,谢谢你的回应。我认为字符串是运行时常量池的一部分,它与堆相似,但不完全相同。你还有什么想法,我应该试试? – tesnik03

回答

1

你应该看一看分为以下 -

  1. 哪个垃圾收集所使用。

  2. 如果您使用IDE,请检查您是否使用正确的java版本。有时候IDE可以设置为在特定的JVM上运行。

您正在使用哪个java安装,BTW?

+0

不错的,谢谢第二个它是..非常感谢! – tesnik03