【android每日一问】final,finally,finalize的区别

234 阅读1分钟

final

在java中,final可以用来修饰类,方法和变量(成员变量或局部变量)。

  • final修饰的类不可继承

  • final修饰的方法不可重写

  • final修饰的变量不可修改

finally

finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示这段语句最终一定会被执行(不管有没有抛出异常),经常被用在需要释放资源的情况下。

  • finally在try块和catch块return执行后,返回前执行。
  • 如果finally中没有return,则其执行结果不影响try和catch中已确定的返回值。
  • 如果finally中有return,则其执行结果会直接返回。

finalize

Object类的一个方法,因为所有的类都继承自Object类,所以所有的类都有finalize方法,在垃圾回收器执行的时候会被调用。可以重写此方法,提供垃圾收集时的其他资源回收,例如关闭文件等。该方法更像是一个对象生命周期的临终方法,当该方法被系统调用时则代表该对象即将“死亡”,但需要注意的是,我们主动行为上去调用该方法不会导致对象“死亡”,这是一个被动的方法,不需要我们调用。