final,finally,finalize的区别
一. final用于声明属性,方法,和类,表示属性不可变,方法不可覆盖,类不能继承
finally是异常处理中必须执行的代码
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法
供垃圾收集时的其他资源的回收,所有的类都可以重写这个方法.例如做关闭流,关闭文件,和其他清理工作
二. final修饰基本数据类型,表示这个变量被赋予的值是不可改变的,它是个常量
final修饰对象,表示这个对象的引用是不可变的,与对象无关
被final修饰的变量必须被初始化:
初始化的方式:1.定义的时候
2.final可以在初始化代码块中初始化,但不能再静态代码块中初始化
3.静态final变量可以在静态代码块中初始化,不可以在非静态代码块中初始化
4.final修饰的变量还可以在构造器中初始化,但静态final不可以
final和abstract不能同时修饰一个类,final也不能修饰接口