当前位置: 首页 > 知识库问答 >
问题:

java内存泄漏的原因[重复]

吕皓
2023-03-14

共有1个答案

宇文育
2023-03-14

Java中的内存泄漏通常不会发生。

不是经典意义上的:在其他编程语言中,您经常必须手动释放内存。这在Java中不会发生,因为通常垃圾收集器会为您移除未使用的数据。

但是,在Java中,您仍然可能会耗尽内存。在Java中,最接近“内存泄漏”的事情是,您保留了对不再需要的对象的引用,并且这些对象越来越多。

 类似资料:
  • 本文向大家介绍Java 内存泄漏,包括了Java 内存泄漏的使用技巧和注意事项,需要的朋友参考一下 在Java中,垃圾回收(析构函数的工作)是使用垃圾回收自动完成的。但是,如果代码中有引用它们的对象怎么办?它无法取消分配,即无法清除其内存。如果这种情况一再发生,并且创建或引用的对象根本没有被使用,它们就会变得无用。这就是所谓的内存泄漏。 如果超过了内存限制,则程序将通过抛出错误(即“ OutOfM

  • 问题内容: 我发现使用是众所周知的与相关的内存问题。 使用中是否存在内存泄漏? 如果是,解决方法是什么? 以下链接显示了Java中子字符串的正确用法。 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4513622 另外一个博客谈论子字符串中可能的MLK。 http://nflath.com/2009/07/the-dangers-of- st

  • 我有一个复杂的应用程序,有很多第三方库,动态加载的插件。并且在main退出后,某个东西会导致应用程序崩溃()。调用堆栈指向未知地址,因此我不仅无法调试,甚至不知道崩溃发生在哪里。 我试着用运行这个应用程序--它显示了泄漏(一些千字节),但我认为它们是误报,并且/或者我无法对它们做任何处理,因为它们来自第三方。 我的问题:我相信内存泄漏不可能造成一个分段故障,至少我找不到可能的场景。但因为我不确定,

  • 问题内容: 好的,所以我的程序有很多(〜300)线程,每个线程都与中央数据库通信。我创建了一个与数据库的全局连接,然后每个线程进行其业务创建语句并执行它们。 一路上的某个地方,我发生了大量内存泄漏。在分析堆转储之后,我看到com.mysql.jdbc.JDBC4Connection对象为70 MB,因为它在“ openStatements”(哈希映射)中有800,000个项目。在某个地方,它不能正

  • 问题内容: 我认为我的android应用正在泄漏内存。我不是绝对确定这是问题所在。 应用程序打开时经常崩溃,并且logcat尝试加载位图图像时会显示“内存不足”异常。 崩溃后,我重新打开了该应用程序,它运行正常。Logcat会显示许多“ gc”,并且JIT表会不时地向上调整大小,而不会向下调整,直到应用程序因内存不足错误而崩溃。 这听起来像是内存泄漏吗?如果是这样,我该如何定位和关闭泄漏点。 这是

  • 问题内容: 我一直在追寻内存泄漏(由“ valgrind –leak-check = yes”报告),它似乎来自ALSA。这段代码已经存在于自由世界中一段时间​​了,所以我猜这是我做错的事情。 输出看起来像这样: 并继续一些页面 这是由于我在一个项目中使用ALSA并开始看到这种巨大的泄漏……或者至少是所说泄漏的报告。 所以问题是:是我,ALSA或valgrind在这里遇到问题吗? 问题答案: ht