为了账号安全,请及时绑定邮箱和手机立即绑定

java final的使用总结

标签:
Android

final 变量:是只读的;

final 方法:是不能继承或者重写的。

final 引用:引用不能修改,但是对象本身的属性可以修改;

final class:不可继承;

final MyObject o = new MyObject();
o.setValue("foo"); // Works just fine
o = new MyObject(); // Doesn't work.
  • 虚拟机并不会知道你的变量是否是final的,所以final与内存泄露无关。
  • final不会让代码速度更快

1.final类

当一个类声明为final类,也就证明这个类是不能够被继承的,即禁止继承,因此final类的成员方法是没有机会被覆盖的,这个final类的功能是完整的。在Java中有很多类是final的,如String、Interger以及其他包装类。

final类的好处:不可变类有很多的好处,它们的对象是只读的,可以在多线程环境下安全的共享,不用额外的开销。

2.final方法
如果一个类不允许其子类覆盖某个方法,即不能被重写,则可以把这个方法声明为final方法。(类中所有的private方法都隐式的指定为final)。
使用final方法的原因:

方法锁定,防止任何继承类修改它的含义,确保在继承中使方法行为保持不变且不被覆盖;
效率,将一个方法指明为final,就是同意编译器将针对该方法的所有调用都转化为内嵌调用(相当于在编译的时候已经静态绑定,不需要在运行时再动态绑定)。

3.final变量
程序中有些数据的恒定不变是很有必要的,比如:

一个永不改变的编译时常量;
一个在运行时被初始化的值,而在程序的后面不希望它被改变。
这种类型的变量只能被赋值一次,一旦被赋值之后,就不能够再更改了。
有几点要注意的:

一个既是static又是final的域只占据一段不能改变的存储空间,一般用大写来表示;
final使数值恒定不变,而当用于对象时,final使引用恒定不变(一旦引用指向一个对象,就无法再把它改为指向另一个对象);
final变量的好处:

提高性能,JVM和Java应用程序都会缓存final变量;
final变量可以在安全的在多线程环境下进行共享,而不需要额外的开销。

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消