您好,登錄后才能下訂單哦!
java 基礎之final、finally和finalize的區別
1.final可以修飾類,不能被繼承;可以修飾方法,不能被重寫;可以修飾變量,只能賦值一次。
2.finally是try語句中的語句體,不能單獨使用,用來釋放資源;
3.finalize是一個方法,當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法。
如下代碼程序:
package cn.jit.test; /** * 面試題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(); 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中不應當有return語句 * 否則該方法一定會返回這里的內容 */ x = 40; return 40; //千萬不要在finally里面寫返回語句,因為finally的作用是 //釋放資源,是肯定會執行的,如果在這里面寫返回語句,那么try和cache //的結果都會被改變,所以這么寫就是犯罪!!! } } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。