gpt4 book ai didi

java - 代码中的内存泄漏问题

转载 作者:行者123 更新时间:2023-12-01 13:04:02 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我的代码出现内存不足错误。我无法看到代码的内存利用率。所以我很困惑看到。

经过我的一点分析,我发现在该类的构造函数中创建了私有(private)静态对象。更多的对象正在被创建。 &该类是多线程的..

所以我想知道,由于静态对象不会被垃圾收集。所有与构造函数相关的对象是否都不会被垃圾收集?

最佳答案

静态引用仅在类卸载时收集,并且仅在不再使用类加载器时发生。如果您没有多个类加载器,则可能永远不会被卸载(直到您的程序停止)

但是,仅仅因为对象曾经被静态引用并不会改变它的收集方式。如果您有一个对象的静态引用并且不再有对该对象的引用,它将像平常一样被收集。

拥有多个线程会使查找错误变得更加困难,但它也不会改变对象的收集方式。

您需要对应用程序进行内存转储并查看内存累积的原因。您保留的对象可能都是需要的。在这种情况下,您需要

  • 减少内存需求
  • 增加最大内存。

关于java - 代码中的内存泄漏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23358382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com