Java 內(nèi)存泄漏

更多 Java 虛擬機方面的文章,請參見文集《Java 虛擬機》


內(nèi)存泄漏

存在無用但是仍可達的對象,導致無法被 GC 回收。

集合類

例如: 盡管我們將 obj 設為空了,但是對象還是被 v 引用,所以不會被回收。

public static void main(String[] args) {
    Vector v = new Vector(10);
    for (int i = 0; i < 10; i++) {
        Object obj = new Object();
        v.add(obj);
        obj = null;
    }
}

集合里對象屬性的修改

例如:str 變成了 ABCD,導致 str 的 hash code 發(fā)生變化,s.remove(str); 實際上并沒有從集合中刪除元素。

Set<String> s = new HashSet<String>();
String str = "ABC";
s.add(str);
str = "ABCD";
s.remove(str);

各種連接

例如 IO 連接,數(shù)據(jù)庫連接,記得關閉 close()

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 最近正在熟悉Java內(nèi)存泄漏的相關知識,上網(wǎng)查閱了一些資料,在此做個整理算是對收獲的一些總結,希望能對各位有所幫助...
    逆風飛行1226閱讀 29,645評論 4 62
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,740評論 18 399
  • 內(nèi)存泄漏是指也給不在被程序使用的對象或變量還在內(nèi)存中占有存儲空間。主要有兩種情況: 在堆中申請的空間沒有被釋放; ...
    A_Coder閱讀 155評論 0 0
  • 從三月份找實習到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,818評論 11 349
  • JAVA內(nèi)存泄漏 由于JAVA與C++的主要區(qū)別在于,JAVA存在特有的垃圾回收機制,JAVA程序員看似不用考慮程...
    逍遙無極閱讀 386評論 0 2

友情鏈接更多精彩內(nèi)容