在Java中,final,final和finalize之间有许多差异。final,final和finalize之间的差异列表如下:
No |
final |
finally |
finalize |
1 |
final用于对类,方法和变量施加限制。不能继承final类,不能覆盖final方法,并且不能更改final变量值。 |
finally用于放置重要代码的一块区域,无论是否处理异常,都将执行该区域的代码。 |
finalize用于在垃圾被回收之前执行清理处理的操作。 |
2 |
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: