最近校招,发现都喜欢问final关键字,今天就总结一下final关键字
final关键字可以修饰类,方法和变量
1.final关键字修饰类:
我们常见的String类和基本数据类型都是由final关键字修饰的类,final修饰类则类不能被继承。
2.final关键字修饰方法:
- final关键字修饰方法,则方法不能被重写
- final关键字修饰方法,在老版本的java,final修饰的方法意味着同意编译器将此方法转为内联方法,以提高效率。但是在现在的jvm能够根据选择自动的判断是否转为内联方法,与final关键字无关了.
- private修饰的方法被隐式的转为final所以也不能被继承
3.final关键字修饰变量:
- final关键字修饰基本数据类型,这时候基本数据类型就相当于常量,其值不能被修改。如果修改了在编译时就会报错
2.final关键字修饰引用类型,这个引用就不能指向其他的对象,但是可以修改其值
3.final关键字修饰的变量是否能被修改?
可以看到一个被final关键字修饰且赋值了的基本数据类型是不能被修改的,因为jvm会把它当做常量处理(如果去掉了final,只是private的话可以被修改为2)