2023.3.30

1Java 中的 final 关键字有哪些用法?

1) 修饰类:表示该类不能被继承;
2) 修饰方法:表示方法不能被重写但是允许重载;
3) 修饰变量:表示变量只能一次赋值以后值不能被修改(常量);
4) 修饰对象:对象的引用地址不能变,但是对象的初始化值可以变。
2. String 类为什么是 final 的
1)为了效率。若允许被继承,则其高度的被使用率可能会降低程序的性能。
2)为了安全。JDK 中提供的好多核心类比如 String,这类的类的内部好多 方法的实现都不是 java 编程语言本身编写的,好多方法都是调用的操作系统 本地的 API,这就是著名的“本地方法调用”,也只有这样才能做事,这种 类是非常底层的,和操作系统交流频繁的,那么如果这种类可以被承的话, 如 果我们再把它的方法重写了,往操作系统内部写入一段具有恶意攻击性质的 代码什么的,这不就成了核心病毒了么?不希望别人改,这个类就像一个工具 一样,类的提供者给我们提供了, 就希望我们直接用就完了,不想让我们随 便能改,其实说白了还是安全性,如果随便能改了,那么 java 编写的程序肯定 就很不稳定,你可以保证自己不乱改, 但是将来一个项目好多人来做,管不 了别人,再说有时候万一疏忽了呢。。他也不是估计的, 所以这个安全性是很 重要的,java 和 C++相比,优点之一就包括这一点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值