美文网首页
Java中final关键字

Java中final关键字

作者: java高并发 | 来源:发表于2019-01-24 19:51 被阅读18次

Java中的final关键字非常重要,它可以应用于类,方法和变量;

什么是final?

final是java中的一个关键字,可以修饰变量(成员变量+局部变量)、类以及方法。final与abstract关键字是反相关的,不能同时出现。

被final修饰的变量,方法和类代表了什么?

被final修饰的变量(成员变量+局部变量)叫做final变量,final变量不能再次改变其引用。final经常与static一起声明常量。
被final修饰的方法称为final方法,不能被子类重写。如果你认为一个方法的功能已经足够完善了,子类中无需改变的话你可以使用final修饰此方法。final方法要比普通的方法要快,因为在编译时已经静态绑定了,不需要再运行时动态绑定。
被final修饰的类称为final类。final类通常是完整的,不能被继承。java中有很多类是final类,比如String,Integer及其它包装类。final类的对象一旦被创建就不能被更改了。String类是典型的不可变类的代表。其有很多好处,譬如对象是只读的,可以在多线程环境下安全的共享,不用额外的同步开销等等。

被final修饰的好处?

final可以修饰变量(成员变量+局部变量)、方法和类;
final变量不能再次赋值;
final成员变量必须在声明时赋值或者在构造器中初始化,否则编译通不过;
final局部变量必须在声明时赋值;
匿名类中使用的局部变量必须是final声明;
final方法不能被重写;
final类不能被继承;
final关键字与finally无关,finally是用于异常处理;
final关键字与finalize()方法区别,finalize()方法是在Object中定义的方法,是在垃圾回收之前被JVM调用的方法;
interface中声明的变量本身都是final的;
将类,方法和变量声明为final变量能够提高性能,这样JVM就有机会进行估计然后优化;
按照java代码编程习惯,final变量就是常量,常量名要大写;
对于集合类对象声明为final,指的是集合变量的引用不能被修改,但是你得增删改查不受final的影响。
final与abstract是反相关的,final类不能是abstract的;
final方法在编译阶段进行绑定,成为静态绑定(static binding)。

欢迎大家加群 733234221 一起学习讨论,然后还可以领取免费的资料和录播视频哟。


相关文章

网友评论

      本文标题:Java中final关键字

      本文链接:https://www.haomeiwen.com/subject/exbujqtx.html