首先明确的事java也会出现内存泄漏的状况java
有一下集中状况数据库
1.静态集合类网络
在使用set、vector、hashmap等集合类的时候,当这些集合被定义成静态的时候,因为他们的生命周期跟应用程序同样长,这时候可能会发生内存泄漏。jvm
2.集合里的对象属性值被改变.net
因为hashcode发生改变,因此不能从集合里删除,形成内存泄漏code
3.监听器对象
释放对象的时候每每会忘记释放监听器,形成内存泄漏blog
4.各类链接生命周期
java中包括数据库链接、网络链接和io链接,若是没有显示调用close方法,是不会自动关闭的,这些链接就不会被gc回收而致使内存泄漏内存
5.单例模式
单例对象初始化后将在jvm的整个生命周期内存在,若是它持有一个外部对象的引用,那么这个外部对象就不能被回收,致使内存泄漏
原文地址:http://blog.csdn.net/wwd0501/article/details/50544222