java - 如果有空闲堆空间,为什么会出现 OutOfMemoryError 错误?

标签 java multithreading debugging memory-leaks out-of-memory

这个问题与此one相关:

如果我有一个堆转储报告,95% 的线程处于 waitparked 状态,并且存在问题750MB 可用堆内存如何可能会出现 java.lang.OutOfMemoryError
由于根据报告似乎有空闲堆,这对我来说似乎很奇怪!
谁能帮我解释一下这个?

最佳答案

您使用什么类型的操作系统?是 32 位还是 64 位?你的JDK是32位还是64位?您总共需要多少堆空间? 尝试使用更大的最大堆空间来运行您的程序。当我想转换 XML 文件时,我遇到了同样的问题。您只需设置以下参数:

在你的 shell 中:

java -Xmx1024m -jar yourfile.jar

关于java - 如果有空闲堆空间,为什么会出现 OutOfMemoryError 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11683778/

相关文章:

java - 根据条件过滤 map java设计实现查询

java - 如果我(需要)将 wait() 和 notify() 调用包含在同步块(synchronized block)中,那么如何执行 notify()?

c# - 现在是在 ASP.NET MVC 中使用多线程的好时机吗?它是如何实现的?

ruby - 检查为什么 ruby​​ 脚本挂起

java - 在java中为特定对象(而不是该类型的所有实例)设置(方法)断点

Java 日期数学问题

java - 枚举的 toString 中的默认大小写

java - 如何提供信任存储文件的路径?

java - 如何以编程方式取消从 InputStream 读取数据?

ubuntu - Google crashpad 上的一个交叉编译平台应用程序。 Ubuntu 中无法读取 dmp 文件