标签:允许 带来 重写 nbsp 性能提升 定义 内容 类型 静态绑定
一、final关键字的含义
final是Java中的一个保留关键字,它可以标记在成员变量、方法、类以及本地变量上。一旦我们将某个对象声明为了final的,那么我们将不能再改变这个对象的引用了。如果我们尝试将被修饰为final的对象重新赋值,编译器就会报错。
二、用法
1.修饰变量
final修饰在成员变量或者局部变量上,那么我们可以称这个变量是final变量,如果我们将被final修饰的变量重新赋值,编译器就会报错
2.修饰方法
被final所修饰的方法将无法被子类重写。
“使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。” -- 摘自《Java编程思想》
因此如果你认为一个方法的功能已经足够完整了,子类中不需要改变的话,你可以声明此方法为final。final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定(正如编程思想中所提到的,在现在几版较新的JDK中,已经几乎没有性能差别了)。
3.修饰类
如果某个类被final所修饰,那么表明这个的功能通常是完整的;该类将不能被继承。并且final类的所有方法都会被隐式的修饰成final。
4.ps:匿名类中的所有变量都必须是final的。
标签:允许 带来 重写 nbsp 性能提升 定义 内容 类型 静态绑定
原文地址:https://www.cnblogs.com/girl1314/p/11455755.html