java final关键字使用及面试题重点

java final关键字使用及面试题重点

final的简介

final 在 Java 中是一个保留的关键字,可以修饰变量,方法和类,用于表示所修饰的内容一旦赋值之后就不会再被改变,比如String类就是一个final类型的类。

1.修饰类,类不能被继承

不能有子类,但可以有父类
一个类是final的,其中所有的成员方法不能被覆盖重写

2.修饰成员方法,不能被重写

3.修饰成员变量,变量不能被修改

(1)由于成员变量有默认值,用了final之后必须手动赋值,不会再给默认值了
(2)对于final修饰的成员变量,要么使用直接赋值,要么使用构造方法赋值,二者选其一
(3)必须保证类中所有重载的构造方法,都最终会对final的成员变量进行赋值–默认构造方法和构造方法

4.修饰局部变量,变量不能被修改,即使与之前的值相同也不可以

对于基本类型来说,不可变说的是变量当中的数据不可变
对于引用类型来说,不可变说的是变量当中的地址值不可变(里面的指向可以改变)

final Student stu = new Student("Lucy");
stu = new Student("Tom");//错误的写法,地址不可改变
stu.setName("LucyLucy");//正确的,地址所指向的对象可改变

使用final关键字的好处:

1.final方法比非final快一些

2.final关键字提高了性能。JVM和Java应用都会缓存final变量。

3.final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。

4.使用final关键字,JVM会对方法、变量及类进行优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值