程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 淺析final,finally,finalize 的差別

淺析final,finally,finalize 的差別

編輯:關於JAVA

淺析final,finally,finalize 的差別。本站提示廣大學習愛好者:(淺析final,finally,finalize 的差別)文章只能為提供參考,不一定能成為您想要的結果。以下是淺析final,finally,finalize 的差別正文


1.final
final潤飾類,解釋這個類不克不及被繼續,是以個頂級類。
final潤飾變量,解釋這個變量是常量。
final潤飾辦法,表現這個辦法不克不及被重寫,不外可以沖在final辦法。

好比有個基類Person,外面有一個public final void eat()辦法,可以在Person類中重載同名辦法,好比public void eat(String name,int age)。假設有一個子類Student,那末在Student中可以override父類的非final辦法,然則不克不及override final辦法。

Person

package test2;

public class Person {
    private String name;
    private int age;

    public final void eat()
    {
        System.out.println("this is in person class");
    }

    public void eat(String name,int age)
    {

    }

}

Student

package test2;

public class Student extends Person {

    @Override
    public void eat(String name, int age) {
        // TODO Auto-generated method stub
        super.eat(name, age);
    }
}

罕見的final辦法就是Object類累中的wait()和notify()辦法。

2.finally
finally是症結字,在異常處置中,try子句中履行須要運轉的內容,catch子句用於捕捉異常,finally子句表現不論能否產生異常,都邑履行。finally無關緊要。然則try...catch必需成對湧現。

3.finalize()
finalize() 辦法名,Object類的辦法,Java 技巧許可應用 finalize() 辦法在渣滓搜集器將對象從內存中消除出去之前做需要的清算任務。這個辦法是由渣滓搜集器在肯定這個對象沒有被援用時對這個對象停止挪用。finalize()辦法是在渣滓搜集器刪除對象之前對這個對象挪用的子類籠罩 finalize() 辦法以整頓體系資本或許履行其他清算操作。

代碼實例:

class Person
{
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String toString()
    {
        return "姓名:"+this.name+",年紀:"+this.age;
    }

    public void finalize() throws Throwable{//對象釋放空間是默許挪用此辦法
        System.out.println("對象被釋放-->"+this);//直接輸入次對象,挪用toString()辦法
    }

}

public class SystemDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Person per=new Person("zhangsan",30);
        per=null;//斷開援用,釋放空間
        //辦法1:
        System.gc();//強迫性釋放空間
        //辦法2:
//        Runtime run=Runtime.getRuntime();
//        run.gc();
    }

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved