1.静态集合类
静态的集合因为静态的对象的生命周期和JVM是一样的,所以会导致内存泄漏
2.单例模式
单例的实例对象肯定是静态的,所有如果单例的实例对象持有外部对象的引用,也会导致内存泄漏
3.内部类持有外部类
4.各种连接,比如数据库连接,网络连接,IO连接等等。
5.变量不合理的作用域
6.不要去改变hashset这种集合中的对象的hash值
7.缓存泄漏
当你把数据存放在hashmap这种内存结构中,很容易出现内存泄漏
如果你使用WeakHashMap,那么除了WeakHashMap没有别的引用指向对象的时候,对象会被回收掉。
8.监听器和回调