线程中的异常"线程-8" java.lang.OutOfMemoryError:Java堆空间

时间:2015-10-23 15:13:12

标签: java exception out-of-memory heap heap-memory

Exception in thread "Thread-8" java.lang.OutOfMemoryError: Java heap space
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-8"
Exception in thread "Thread-6" java.lang.OutOfMemoryError: Java heap space
Exception in thread "Thread-0" java.lang.OutOfMemoryError: Java heap space
Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space
Exception in thread "Thread-3" java.lang.OutOfMemoryError: Java heap space

我有这个例外。谁能帮助我理解为什么会发生这种异常?

例外情况并未提供我的代码中的这种情况。

编辑: 从我收到的所有答案中,我意识到我需要某种 Java Profiler ,以帮助我检测内存泄漏的位置。因为我使用 NetBeans 来开发我的应用程序,所以我决定使用其嵌入式分析器。

@MuhammadGhazanfar给了我这个非常有用的链接: Best way to profile memory usage in a Java application?

感谢您的时间和所有帮助。

2 个答案:

答案 0 :(得分:0)

它发生的地方并不重要:它只发生在需要一些记忆的地方;没有人被发现。

基本上,您希望学习如何使用Java Profiler将配置文件用于应用程序的内存使用情况;为了弄清楚你正在处理的内存泄漏;或了解实际需要多少内存;可能只是你的应用程序在运行" java"时需要比默认设置更多的内存。帐户。

答案 1 :(得分:-1)

Java docs之后,OutOfMemoryError是,

  

当Java虚拟机因内存不足而无法分配对象时抛出,垃圾收集器不再提供更多内存。

为什么会这样?您的应用程序只是使用了太多内存。

你能做些什么来修复它?好吧,您可以尝试下面列出的一些内容并查看herehere了解更多

  • 尽可能使用Singleton pattern
  • 避免使用大型数组。将链表放在内存中更容易。
  • 当你不需要时,不要制作一个物品。
  • 使用-Xmx选项与java设置更高的堆大小。