看了高手的文章后,自己总结了一下,以备忘 原文:http://zangweiren.iteye.com/blog/212592
1)final
可用于定义:常量、静态常量、对象、方法、类
常量:基本类型,定义式应当将初始化,或在 初始化块 中初始化,初始化后值不能改变。
静态常量:基本类型,定义式应当将初始化,或在 静态初始化块 中初始化,初始化后值不能改变。
对象:定义时初始化,其引用不能改变,但是指向的对象的值可以改变。对于非静态 和 静态 对象 同样可以 分别在 初始化块 和 静态初始化块中初始化。
方法:不可以被子类重写,可以被继承。
类:不可以被继承,类的所有方法也都默认的是final的。
补充:
使用final定义可以提高一定效率,因此对应常量建议用final修饰。
2)finally
仅仅用于 try/catch 块中,表示该部分代码一定被执行。
3)finalize
Object 类有 protected void finalize() throws Throwable { } 方法,因此所有java类都有该方法,可以重写。
它的本意是用于清理对象,自定义时最好也遵循该本意。