final关键字

基本用法:

1、final修饰类表示类不能被继承

2、final修饰的方法不能被覆盖

3、final修饰的变量不能修改,是指引用的地址值不能修改,并且final修饰的变量必须初始化(1、直接赋值 2、在构造方法中赋值)

final也可以用于提高运行效率

4、直接赋值的final常量在编译阶段就会赋值。

编译之后用反编译工具打开.class文件

 

可以清楚的看到在testFinalProperty这个方法体中str1直接用"test"代替,在编译阶段就被赋值了。

5、方法的内联

final修饰的方法,虚拟机不会执行正常的方法调用(入栈出栈,方法返回值),会直接转化为内联调用,直接展开方法,减少调用开销,已空间换时间,如果final定义的方法方法体很大时这样得不偿失。

posted @ 2019-02-27 15:24  Leon_W  阅读(130)  评论(0编辑  收藏  举报