内存泄漏场景

使用集合
    集合释放掉了,但时集合中还持有某些对象的引用,造成这些引用不能被及时回收
静态属性导致内存泄漏
    会导致内存泄露的一种情况就是大量使用static静态变量。在Java中,静态属性的生命周期通常伴随着应用整个生命周期(除非ClassLoader符合垃圾回收的条件)。
未关闭的资源
    无论什么时候当我们创建一个连接或打开一个流,JVM都会分配内存给这些资源。比如,数据库链接、输入流和session对象。
    使用finally或者try-with-resources
不当的equals方法和hashCode方法实现
    没有equals方法和hashCode方法,每次都创建新的对象
外部类引用内部类
    这种情况发生在非静态内部类(匿名类)中,在类初始化时,内部类总是需要外部类的一个实例。
    每个非静态内部类默认都持有外部类的隐式引用。如果在应用程序中使用该内部类的对象,即使外部类使用完毕,也不会对其进行垃圾回收。
    改为使用静态内部类
使用ThreadLocal
全部评论

相关推荐

Cassifa:发的字比你都多的一律视为骗子或者想白嫖压榨实习生的
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客企业服务