当前位置:网站首页>Why do strings use the final keyword
Why do strings use the final keyword
2022-07-29 14:23:00 【xiaokaikaa】
final 的定义
1.final关键字可以用来修饰类,方法,变量.
2.修饰类时,该类不可以被继承;
3.修饰方法时,This method cannot be overridden by subclasses;
4.修饰变量时,该变量为常量,An initialization assignment operation is required,且只能被赋值一次,Once assigned, it cannot be changed.
Although the reference variable is final修饰之后,虽然不能再指向其他对象,但是它指向的对象的内容是可变的.stackReference addresses on the stack are immutable,但heapThe data in the heap can be changed.
String为什么不可变
在String源码里,除了String类被final修饰外,value数组也被final修饰,StringA class is essentially one不可变的char数组.
因为被final修饰后,Reference addresses are immutable though,But the data itself is mutable,同理,value数组里的Data may also be modified.但由于value数组本身是private私有访问,且StringThe class itself is also usedfinal修饰,不能被继承,从而使String不能被改变.
StringClasses are designed asfinal后,因为不可变,在多线程环境下,线程安全.
安全性高,比如,数据库的用户名、密码都是以字符串的形式传入来获得数据库的连接,或者在socket编程中,主机名和端口都是以字符串的形式传入.因为String对象是不可变的,所以它的值是不可改变的,保证了安全性.
总结:
1支持字符串常量池
2线程安全
3保证hash code的唯一性
4安全性
边栏推荐
- MLX90640 红外热成像仪测温传感器模块开发笔记(九)
- 开关电源-半桥LLC控制
- How to merge the code when there is a code conflict in the collaborative development of multiple people?
- Network connection optimization for instant messaging mobile terminal development
- Some thoughts on paying for knowledge
- 1124. 骑马修栅栏
- 你真的会用Console.log吗?
- The core principles of electronic games
- 为什么字符串使用final关键字
- 通过二维顺序表实现杨辉三角
猜你喜欢
leetcode linked list topic
【Postman】下载与安装(新手图文教程)
威纶通触摸屏制作自定义欢迎界面的几种方法介绍
如何返回一个数字的所有质因数?
【论文阅读】异常检测的视频通过Self-Supervised和多任务学习
【10点公开课】:快手GPU/FPGA/ASIC异构平台的应用探索
熊市下PLATO如何通过Elephant Swap,获得溢价收益?
MLX90640 红外热成像仪测温传感器模块开发笔记(九)
C#线程操作UI控件
The new technical director, who is in the form of a isXxx Boolean type definition, tomorrow need not come!
随机推荐
Vscode builds ESP32-C3 development environment
2022年了!还在用定时器实现动画?赶紧试试requestAnimationFrame吧!
[局域网劫持]如何搞懵蹭网的同学-详细过程
Vscode搭建ESP32-C3开发环境
新来技术总监:谁在用 isXxx 形式定义布尔类型,明天不用来了!
基于降阶扩张状态观测器的逆变系统重复控制设计
十种实现延迟任务的方案
如何返回一个数字的所有质因数?
为什么字符串使用final关键字
了解 AQS 底层原理
解决:Parameter 0 of method ribbonServerList in com.alibaba.cloud.nacos.ribbon.NacosRibbonClientConfigu
The key to cracking AI full-process development problems
开关电源-PWM外设简介及MCC配置
Project Manager: Not bad!The SSO single sign-on code is written, and the sequence diagram is also drawn?
威纶通触摸屏制作自定义欢迎界面的几种方法介绍
共享内存 - shmget填坑记
还在开发短信验证码登录?试试(本机号码一键登录)
通过二维顺序表实现杨辉三角
线上支付,出款和收款
这么多年了,还搞不懂正则语法?