final、finally 和 finalize 在 Java 中


  • final 关键字可与类方法和变量一起使用。不能继承 final 类,不能覆盖 final 方法,不能重新赋值 final 变量。

  • finally 关键字用来创建紧跟 try 代码块的一个代码块。无论是否发生异常,finally 代码块都会始终执行。使用 finally 代码块可运行你希望执行的任何清理类型陈述,无论在受保护的代码中发生了什么。

  • finalize() 方法在销毁对象前使用,可以在对象创建前调用。

final 示例

public class Tester {
   final int value = 10;

   // The following are examples of declaring constants:
   public static final int BOXWIDTH = 6;
   static final String TITLE = "Manager";
   public void changeValue() {
      value = 12; // will give an error
   }
   public void displayValue(){
      System.out.println(value);
   }
   public static void main(String[] args) {
      Tester t = new Tester();
      t.changeValue();
      t.displayValue();
   }
}

输出

编译器将在编译期间抛出一个错误。

Tester.java:9: error: cannot assign a value to final variable value
value = 12; // will give an error
^
1 error

finally 示例

public class Tester {
   public static void main(String[] args) {

      try{
         int a = 10;
         int b = 0;
         int result = a/b;
      }catch(Exception e){
         System.out.println("Error: "+ e.getMessage());
      }
      finally{
         System.out.println("Finished.");
      }
   }
}

输出

Error: / by zero
Finished.

finalize 示例

public class Tester {
   public void finalize() throws Throwable{
      System.out.println("Object garbage collected.");
   }
   public static void main(String[] args) {

      Tester t = new Tester();
      t = null;
      System.gc();
   }
}

输出

Object garbage collected.

更新于: 29-Jul-2021

11 千次浏览

开启您的 职业生涯

完成课程即获得认证

开始
广告