本帖最后由 李松柏 于 2013-3-17 22:46 编辑
1、final
final关键字
我们首先来说说final。它可以用于以下四个地方:
a. 定义变量,包括静态的和非静态的
b. 定义方法的参数
c. 定义方法
d. 定义类
被final修饰的变量必须被初始化。初始化的方式有以下几种:
1. 在定义的时候初始化.
2. final变量可以在初始化块中初始化,不可以在静态初始化块中初始化.
3. 静态final变量可以在静态初始化块中初始化,不可以在初始化块中初始化.
4. final变量还可以在类的构造器中初始化,但是静态final变量不可以.- public final class FinalTest {
- int i = 10;
- public static void main(String[] args) {
- FinalTest ft = new FinalTest();
- ft.i = 99;
- System.out.println(ft.i);
- }
- }
复制代码 运行上面的代码试试看,结果是99,而不是初始化时的10。
2、finally
在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finally是try后面的语句块之一,无论异常是否抛出,都会执行的语句块
3、finalize
finalize()方法是在 GC 清理它所从属的对象时被调用的,如果执行它的过程中抛出了无法捕获的异常 (uncaught exception),GC 将终止对改对象的清理,并且该异常会被忽略;直到下一次 GC 开始清理这个对 象时,它的 finalize()会被再次调用。 由于 finalize()属于 Object 类,因此所有类都有这个方法,Object 的任意子类都可以重写(override)该方法, 在其中释放系统资源或者做其它的清理工作,如关闭输入输出流。
|