java基礎(chǔ)之final、finally和finalize的區(qū)別
在java 基礎(chǔ)中,final、finally和finalize的區(qū)別有哪些?下面百分網(wǎng)小編帶大家一起來(lái)看看詳細(xì)內(nèi)容,希望對(duì)大家有所幫助!想了解更多相關(guān)信息請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
1.final可以修飾類,不能被繼承;可以修飾方法,不能被重寫(xiě);可以修飾變量,只能賦值一次。
2.finally是try語(yǔ)句中的語(yǔ)句體,不能單獨(dú)使用,用來(lái)釋放資源;
3.finalize是一個(gè)方法,當(dāng)垃圾回收器確定不存在對(duì)該對(duì)象的更多引用時(shí),由對(duì)象的垃圾回收器調(diào)用此方法。
如下代碼程序:
package cn.jit.test;
/**
* 面試題1:final,finally和finalize的區(qū)別:
*
* final可以修飾類,不能被繼承;
* 可以修飾方法,不能被重寫(xiě)
* 可以修飾變量,只能賦值一次。
* finally是try語(yǔ)句中的語(yǔ)句體,不能單獨(dú)使用,用來(lái)釋放資源;
* finalize是一個(gè)方法,當(dāng)垃圾回收器確定不存在對(duì)該對(duì)象的更多引用時(shí),由對(duì)象
* 的垃圾回收器調(diào)用此方法。
*
*
* 面試題2:如果catch里面有return語(yǔ)句,請(qǐng)問(wèn)finally的代碼還會(huì)被執(zhí)行嗎?
* 如果會(huì),請(qǐng)問(wèn)是在return前還是在return后?
* 會(huì)。在return前。
*
* @author Rocky
*
*/
public class FinallyDemo8 {
public static void main(String[] args) {
Demo d = new Demo();
System.out.println(d.method());
}
}
class Demo {
public int method() {
int x = 10;
try {
x = 20;
System.out.println(1/0);
return x;
} catch (Exception e) {
x = 30;
return x;
} finally {
/*
* finally中不應(yīng)當(dāng)有return語(yǔ)句
* 否則該方法一定會(huì)返回這里的內(nèi)容
*/
x = 40;
return 40;
/pic/p>
/pic/p>
/pic/p>
}
}
}
10Java中HashMap和TreeMap的區(qū)別深
【java基礎(chǔ)之final、finally和finalize的區(qū)別】相關(guān)文章:
Java中finally的問(wèn)題10-29
java和js的區(qū)別11-26
Java和PHP的區(qū)別12-27
Java final 修飾符07-30
Java和C語(yǔ)言的區(qū)別01-17
java中String和StringBuffer的區(qū)別12-05
Java和PHP的區(qū)別有哪些10-04