0
我有一个很大的XML文件,我使用SAX解析器解析。在处理过程中,我创建了一个具有解析JSON的键和值的大HashMap。Java 8字符串outofmemory错误
根据我的理解,在java 8中,您不需要在运行java应用程序时设置任何Permgen设置,它会在堆中创建字符串,但是我仍然会出现OutOfMemoryError。我的理解是正确的还是我选择了一个错误的解析器?
我有一个很大的XML文件,我使用SAX解析器解析。在处理过程中,我创建了一个具有解析JSON的键和值的大HashMap。Java 8字符串outofmemory错误
根据我的理解,在java 8中,您不需要在运行java应用程序时设置任何Permgen设置,它会在堆中创建字符串,但是我仍然会出现OutOfMemoryError。我的理解是正确的还是我选择了一个错误的解析器?
你应该看一看分为以下 -
哪个垃圾收集所使用。
如果您使用IDE,请检查您是否使用正确的java版本。有时候IDE可以设置为在特定的JVM上运行。
您正在使用哪个java安装,BTW?
不错的,谢谢第二个它是..非常感谢! – tesnik03
请填写更多详情。您的堆大小,数据大小以及您认为OOM即将到来的代码位置。 – Abhishek
字符串始终存储在堆中,在Java 8中,MetaSpace替换了PermGenSpace,但这很少有关系:PermGenSpace用于存储类声明,虽然我对MetaSpace不是很了解,但我很确定您很少需要调整它 – Aaron
嗨亚伦和阿布舍克,谢谢你的回应。我认为字符串是运行时常量池的一部分,它与堆相似,但不完全相同。你还有什么想法,我应该试试? – tesnik03