当前位置:网站首页>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安全性
边栏推荐
- Project Manager: Not bad!The SSO single sign-on code is written, and the sequence diagram is also drawn?
- trivy如何从非关系型数据库查询数据
- Nine kinds of way, teach you to read the resources files in the directory path
- 手摸手写一个互联网黑话生成器
- BOM系列之Location对象
- 线程池工作流程-图示
- 在金融服务行业数字化转型中,低代码值得被关注
- 性能优化竟白屏,难道真是我的锅?
- 暴力递归到动态规划 02 (绝顶聪明的人的纸牌游戏)
- 2022开放原子全球开源峰会数据库分论坛圆满召开
猜你喜欢

R Error in :missing values are not allowed in subscripted assignments of data frames

PyQt5快速开发与实战 7.1 信号与槽介绍

Vscode搭建ESP32-C3开发环境

在金融服务行业数字化转型中,低代码值得被关注

计算机专业面试进阶指南

新来技术总监:谁在用 isXxx 形式定义布尔类型,明天不用来了!

Vscode builds ESP32-C3 development environment

威纶通触摸屏制作自定义欢迎界面的几种方法介绍

开关电源-半桥LLC控制

Some thoughts on paying for knowledge
随机推荐
Bika LIMS 开源LIMS集—— SENAITE的使用(用户、角色、部门)
Network connection optimization for instant messaging mobile terminal development
唯物辩证法-矛盾论(普遍性+特殊性+斗争性+同一性)
验证二叉树的前序序列化[抽象前序遍历]
【pytorch】1.6 tensor 基本运算
Vscode builds ESP32-C3 development environment
苹果官方降价的原因找到了,它也面临销量下滑乃至出现库存问题
【模板引擎】微服务学习笔记六:freemarker模板引擎的常用命令介绍
关于内部类
期货合约知多少
1184. 欧拉回路
AI全流程开发难题破解之钥
共享内存 - shmget填坑记
中国电信首发全新加密通话产品!有效防止网络监听
EA&UML日拱一卒-活动图::Variable Actions(续)
grid的使用
性能优化竟白屏,难道真是我的锅?
TAP 文章系列-10 | 从应用感知能力谈 TAP 的约定服务
480-82(59、151)
十种实现延迟任务的方案