JAVA 編程 感悟 內存管理

       用JAVA 開發一年多了,JAVA開發的一個標誌就是new XX();對於新手來說,這不就是實例化一個對象嘛,但隨着開發經驗不斷增加,我們對JAVA開發特性也有更深刻的理解,尤其是內存管理,今天我就是向大家分享一下JAVA內存管理小技巧,這也是我個人平時看書、向前輩討教得來的成果。

     PS:首先我先簡單說說這個JAVA垃圾回收機制,垃圾回收機制判斷一個對象是否是垃圾的唯一標誌是該對象是否被其他引用變量引用。

     內存管理技巧:

     (一) 儘量少使用靜態變量:靜態變量的生命週期和當前類的生命週期同步,在當前類不被卸載的情況下,當前類對應的Class對象會常住內存,直到程序運行結束,所以靜態變量也是常駐內存。這個時候一旦靜態變量引用某一個對象,那這個對象在程序沒有結束前是不會被垃圾回收機制回收的,直到程序結束。當靜態變量過多時,可想而知,內存佔用是多麼大。

     (二)儘早釋放無用對象的引用:大部分時候,方法局部引用的變量會隨着方法的結束而消亡,我們這是不需要考慮將局部變量的引用釋放,但有一種情況我們必須考慮。大家來看看這個方法:

     public viod function(){

         Object obj=new Object();

        // 對obj對象進行操作.....

       // 對obj對象操作完成

       obj=null;           //釋放引用

      //以下是執行耗時間、內存操作...且是與obj引用沒有關係

     .......................................

    }

   (三) 避免在循環中、經常調用的方法中創建對象

    public viod function (){

     for(int i=0;i<100;i++){

         Object obj=new Object();

         //執行其他操作.....

     }

   }

  在上述代碼中創建了100個Object對象,這無疑會影響程序的性能。

  還有其他一些小技巧,比如緩存經常使用的對象、儘量使用直接量、使用StringBuilder 和StringBuffer進行字符串鏈接等等。。 

                    

                    PS:下期說說java回收機制的相關的知識。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章