Java:final,finally 和 finalize 的區別

在Java中,final,final和finalize之間有許多差別。final,final和finalize之間的差別列表以下:spa

Nocode

finalblog

finally繼承

finalizeio

1編譯

final用於對類,方法和變量施加限制。不能繼承final類,不能覆蓋final方法,而且不能更改final變量值。table

finally用於放置重要代碼的一塊區域,不管是否處理異常,都將執行該區域的代碼。class

finalize用於在垃圾被回收以前執行清理處理的操做。變量

2gc

final是一個關鍵詞

finally是一段代碼塊

finalize是一個方法

① final例子

1 public class FinalExample {
2     public static void main(String[] args){
3         final int x=100;
4         x=200;    //編譯時錯誤
5     }
6 }

Meaasge:

② finally例子

 1 public class FinallyExample {
 2     public static void main(String[] args){
 3         try{
 4             int x=300;
 5         }catch(Exception e){
 6             System.out.println(e);
 7         }
 8         finally{
 9             System.out.println("finally block is executed");
10         }
11     }
12 }

Output:

③ finalize例子

 1 class FinalizeExample{
 2     public void finalize(){
 3         System.out.println("finalize called");
 4     }
 5 
 6     public static void main(String[] args){
 7         FinalizeExample f1=new FinalizeExample();
 8         FinalizeExample f2=new FinalizeExample();
 9         f1=null;
10         f2=null;
11         System.gc();
12     }
13 }

Output:

相關文章
相關標籤/搜索