首先明確的事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