page contents

举几个可能发生内存泄漏的情况?

轩辕小不懂 发布于 2022-02-08 13:39
阅读 581
收藏 0
分类:Java开发
3011
Nen
Nen
- 程序员

1、静态集合类引起的内存泄漏;

2、当集合里面的对象属性被修改后,再调用 remove() 方法时不起作用;

3、监听器:释放对象的时候没有删除监听器;

4、各种连接:比如数据库连接(dataSourse.getConnection()),网络连接(socket) 和 IO 连接,除非其显式的调用了其 close() 方法将其连接关闭,否则是不会自动被 GC 回收的;

5、内部类:内部类的引用是比较容易遗忘的一种,而且一旦没释放可能导致一系列的后继类对象没有释放;

6、单例模式:单例对象在初始化后将在 JVM 的整个生命周期中存在(以静态变量的方式),如果单例对象持有外部的引用,那么这个对象将不能被 JVM 正常回收,导致内存泄漏。

请先 登录 后评论