一.被final修饰后的特性
1.类:不可被继承
2.变量(基本类型):不可更改 ,修饰类的成员变量时,必须在定义时或者构造方法中赋值
3.方法:不可被重写
4.对象:引用地址不可更改,对象属性可以修改
二.被final关键字修饰的优点
final关键字提高了性能。JVM和Java应用都会缓存final变量。
final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
使用final关键字,JVM会对方法、变量及类进行优化。
三.其他
1.finally
如果finally中有return语句,则会将try中的return语句”覆盖“掉,直接执行finally中的return语句,得到返回值,这样便无法得到try之前保留好的返回值;
如果finally中没有return语句,但是改变了要返回的值:
如果return的数据是基本数据类型,则在finally中对该基本数据的改变不起作用,try中的return语句依然会返回进入finally块之前保留的值;如果return的数据是引用数据类型,而在finally中对该引用数据类型的属性值的改变起作用,try中的return语句返回的就是在finally中改变后的该属性的值。
2.Finalize
Java虚拟机在垃圾回收之前会先调用垃圾对象的finalize方法用于使对象释放资源(如关闭连接、关闭文件),之后才进行垃圾回收;在垃圾回收时垃圾回收器会主动调用。