1.java 中final的作用?
final关键字主要用在三个地方:变量、方法、类;
a.对于一个final变量,必须要赋初始值,而且是只能初始化一次。
如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;
如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
被fianl修饰的成员变量赋值,有两种方式:1、直接赋值 2、在构造方法中赋初值。
b.当用final修饰一个类时,表明这个类不能被继承。
final类中的成员变量可以可以根据实际需要设计为final, final类中的所有成员方法都会被隐式地指定为final方法。
一般来说工具类我们往往都会设计成为一个fianl类。在JDK中,被设计为final类的有String、System等。
d.使用final修饰方法时,表名此方法不能被重写;
1.一个类的private方法会隐式的被指定为final方法;
2.如果父类中有final修饰的方法,那么子类不能去重写;
e.使用final方法的原因:
1.把方法锁定,以防任何继承类修改它的含义;
2.在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,
可能看不到内嵌调用带来的任何性能提升(现在的Java版本已经不需要使用final方法进行这些优化了)