1、final
是关键字,用来修饰常量、方法、类。
有以下作用:
修饰的是一个常量:该值无法修改。注意:如果修饰的是一个成员变量,必须当场赋值,否则会编译报错。
修饰的是一个方法:该方法不能被重写,但能被子类继承使用。 注意:类的private方法会被隐式的指定为final方法
修饰的是一个类: 该类不能被继承。例如String类。
2、finally
作为异常处理的一个代码块,不管有没有异常,该代码块最终都会执行。
经常被用在释放资源的情况下。(例如关闭数据库连接)
3、finalize
是Object类的一个方法,而Object类又是所有类的超类。
是Java垃圾回收处理机制时调用的一个方法。当我们调用System.gc()方法时,由垃圾回收器调用finalize(),回收垃圾。
Java中的垃圾回收处理的时间是随机性的,并不是你调用GC,它就立刻去回收没用的对象。不像C++语言一样。
说到垃圾回收处理机制这块,就有必要说明一下了。
垃圾回收机制它是与语言特性和运行环境所影响的。像C++,最终是机器码文件,没有虚拟机帮它去处理这些垃圾,只能码农去自行处理了。
而Java是运行在虚拟机上,生成的是字节码文件去运行在虚拟机上,通过虚拟机去生成机器码。所以呢,垃圾回收机制是运行在虚拟机上的,这也就是Java开发时基本不用关心内存开销问题,有虚拟机的GC啊。