finalize
垃圾回收器(garbage colector)决定回收某对象时,就会运行该对象的finalize()方法 但是在 Java 中很不幸,如果内存总是充足的,那么垃圾回收可能永远不会进行,也就是说 filalize()可能永远不被执行,显然指望它做收尾工作是靠不住的。那么finalize()究竟是做什么的呢?它最主要的用途是回收特殊渠道申请的内存。Java 程序有垃圾回收器,所以一般情况下内存问题不用程序员操心。但有一种 JNI(Java Native Interface)调用non-Java程序(C 或 C++),finalize()的工作就是回收这部分的内存
finally
Java 中的 Finally 关键一般与try一起使用,在程序进入try块之后,无论程序是因为异常而中止或其它方式返回终止的,finally块的内容一定会被执行
finally 代码块和 finalize()方法区别
无论是否抛出异常,finally 代码块都会执行,它主要是用来释放应用占用的资源。finalize()方法是 Object 类的一个 protected 方法,它是在对象被垃圾回收之前由Java 虚拟机来调用的
final
- final从字面上理解含义为“最后的,最终的”。在Java中也同样表示出此种含义
- final可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类
- final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载