Thinking java , Enjoying java(三)

2016-11-11

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請說明出處。

今天重新看了Thinking in java中垃圾回收和終極處理原理。
[1]java中有負(fù)責(zé)回收無用對象占據(jù)內(nèi)存資源的垃圾回收器,但是垃圾回收器只知道釋放那些有new分配的內(nèi)存。而對于不是由new分配的內(nèi)存無法進(jìn)行釋放,java中允許在類中定義一個finalize()方法。
[2]finalize()方法的原理:

[2.1]垃圾回收器準(zhǔn)備釋放對象所占內(nèi)存
[2.2]先調(diào)用inalize()方法
[2.3]在下一次垃圾回收動作發(fā)生時,才會真正回收對象占用的內(nèi)存

[3]在java中,你需要明白一下幾點,才能更好的理解垃圾回收機制:

[3.1]對象可能不被垃圾回收處理
[3.2]垃圾回收不等于c++的析構(gòu)函數(shù)
[3.3]垃圾回收只與內(nèi)存有關(guān)

package cxy.first;
//終極處理和垃圾回收
//java有垃圾回收機制回收new分配的內(nèi)存,finalize()用于回收不是new分配的內(nèi)存
//[1]對象可能不被垃圾回收
//[2]垃圾回收不等于析構(gòu)函數(shù)
//[3]垃圾回收只與內(nèi)存有關(guān)
class Book{
    boolean checkedOut=false;
    Book(boolean checkOut){
        checkedOut=checkOut;
    }
    void checkIn(){
        checkedOut=false;
    }
    protected void fianlize(){
        if(checkedOut)
            System.out.println("Erro:checked out");
    }

}

public class TerminationCondition {
    public static void main(String[] args){
        Book novel=new Book(true);
        novel.checkIn();
        new Book(true);
        System.gc();
    }
}

[參考]thinking in java

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

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

  • 1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虛擬機(JVM)垃圾回收器提供...
    簡欲明心閱讀 90,388評論 17 311
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,835評論 18 399
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,873評論 11 349
  • Java引用的種類 1.對象在內(nèi)存中的狀態(tài) 對于JVM的垃圾回收機制來說,是否回收一個對象的標(biāo)準(zhǔn)在于:是否還有引用...
    Jack921閱讀 3,990評論 0 3
  • 有生之年,我一定會去。我想在那些孩子們心里埋下一粒種子,任以后的生活狂風(fēng)暴雨,他們能矢志不渝。
    富貴兒媽媽閱讀 430評論 0 0

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