final和finally和finalize的区别
final
final用来修饰属性,方法和类,分别表示属性不可交变,方法不可重写,类不可被继承。
final修饰变量的话,分两种情况,如果修饰基本数据类型的话代表这个值是不可变的,如果修饰对象的话代表这个对象的引用是不可变的。被final修饰的变量必须要初始化,初始化有以下四种方式
- 在定义的时候初始化
- 静态的final变量可以在静态的代码块中初始化
- 非静态的final变量可以在非静态的代码块初始化
- 可以在构造器中初始化非静态的final变量
final修饰方法的话,代表着方法不能被子类重写,但是可以被子类继承
finally
finally是异常结构处理的一部分,表示一定会执行
finalize
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收方法的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。