【发布时间】:2014-04-29 07:34:01
【问题描述】:
我正在开发一个应用程序,我的代码出现内存不足错误。我看不到代码的内存利用率。所以我很困惑。
另外,经过我的小分析,我知道在该类的构造函数中有私有静态对象正在创建 &。正在创建更多对象。并且该类是多线程的..
所以我想知道,因为静态对象不会被垃圾收集。所有与构造函数相关的对象都不会被垃圾收集吗??
【问题讨论】:
-
将静态成员作为设计的一部分不一定是“坏事”,这取决于它的使用方式。你能发布可疑的代码吗? VisualVm 也值得熟悉,它可以让您分析代码中对象的生命周期等等。
-
此外,您将在 oom 上获得堆转储,您可以使用 VM 参数“-XX:+HeapDumpOnOutOfMemoryError”进行分析。见oracle.com/technetwork/java/javase/tech/…
标签: java multithreading memory-leaks