java基礎之final、finally和finalize的區別

在java 基礎中,final、finally和finalize的區別有哪些?下面本站小編帶大家一起來看看詳細內容,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

java基礎之final、finally和finalize的區別

l可以修飾類,不能被繼承;可以修飾方法,不能被重寫;可以修飾變量,只能賦值一次。

lly是try語句中的語句體,不能單獨使用,用來釋放資源;

lize是一個方法,當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法。

  如下代碼程序:

package ;

/**

  * 面試題1:final,finally和finalize的區別:

*

* final可以修飾類,不能被繼承;

* 可以修飾方法,不能被重寫

* 可以修飾變量,只能賦值一次。

* finally是try語句中的語句體,不能單獨使用,用來釋放資源;

* finalize是一個方法,當垃圾回收器確定不存在對該對象的更多引用時,由對象

* 的垃圾回收器調用此方法。

*

*

  * 面試題2:如果catch裏面有return語句,請問finally的代碼還會被執行嗎?

* 如果會,請問是在return前還是在return後?

* 會。在return前。

*

* @author Rocky

*

*/

public class FinallyDemo8 {

public static void main(String[] args) {

Demo d = new Demo();

tln(od());

}

}

class Demo {

public int method() {

int x = 10;

try {

x = 20;

tln(1/0);

return x;

} catch (Exception e) {

x = 30;

return x;

} finally {

/*

* finally中不應當有return語句

* 否則該方法一定會返回這裏的內容

*/

x = 40;

return 40;

//千萬不要在finally裏面寫返回語句,因爲finally的`作用是

//釋放資源,是肯定會執行的,如果在這裏面寫返回語句,那麼try和cache

//的結果都會被改變,所以這麼寫就是犯罪!!!

}

}

}

10Java中HashMap和TreeMap的區別深