final-关键字(终结器)
使用final修饰的变量会变为常量,常量必须在声明时赋值,且无法再次修改;
- 修饰数据
类型无论是基本类型还是引用类型,值不能变,对于引用类型而言,不可改变的是指向不能变(保存的堆内存地址不能变)
- 修饰方法-封装
被final修饰的方法不能被覆写。
- 修饰类
被final修饰的类没有子类(string)
finally
-
异常处理的一部分,用在try/catch语句中,保证重点代码(如IO流的关闭,JDBC资源的释放,以及网络连接的关闭等)一定会被执行的机制,无论是否产生异常,(处此之外(System.exit())系统退出)finally代码块中的内容一定会被执行。
-
异常体系中,若finally代码块中存在return语句,则try、catch语句失效。
若finally无return,try、catch有return语句,则try、catch代码块先暂存代码块中的值,然后执行finally代码块,最后返回暂存值。
finalize 自我拯救
- 若对象所在的类覆写了finalize();
该对象finalize()未被JVM调用过,JVM会调用此对象的finalize()
该对象finalize()被JVM调用过,此对象标记为不再存活,可进行GC - 若对象所在的类没有覆写finalize();此对象直接标记为不再存活,可以进行GC