当前位置:网站首页>为什么字符串一旦创建就不可以改变?
为什么字符串一旦创建就不可以改变?
2022-08-10 00:25:00 【@ljn】
理解:
字符串的值一旦被创建,就不能改变指的是字符串的内容不能发生改变。而不是字符串的引用不能发生改变
背景:
String字符串的特点
Java程序中所有的双引号字符串,都是String类型的对象。
字符串不可变,它们的值在创建后不能被更改。
虽然String的值是不可变的,但是它们可以被共享。
解释说明:
字符串常量池:当使用双引号创建字符串对象时候,系统会检查该字符串是否在字符串常量池中存在,若不存在则创建,存在:不会创建,而是直接复用。(看以下四幅图片)
(1)第一幅
(2)第二幅
(3)变量用+号相连


解释:当字符串之间使用+号 串联(拼接)的时候,系统底层会自动创建一个StringBuilder对象,然后再调用其append方法完成拼接,拼接后调用toString方法转换为String类型。
(4)常量用+号相连

Java存在常量优化机制,在编译的时候,就会将“a”+“b”+“c”拼接为abc;
边栏推荐
- Prometeus 2.31.0 新特性
- 你有对象类,我有结构体,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang结构体(struct)的使用EP06
- 线程的同步与互斥
- C语言--数据的存储(上)
- @PostConsturct注解作用及特点
- What do you know about FITC-labeled biotin (FITC-biotin|CAS: 134759-22-1)?
- 足不出户也能看星空
- Penetration Testing and Offensive and Defense Confrontation - Vulnerability Scanning & Logic Vulnerability (Part1)
- Docker 面试题2则--取数据库连接数和docker-compose
- Koa中间件next实现
猜你喜欢

GBJ1510-ASEMI机器人电源整流桥GBJ1510

生物素叠氮化物中的(CAS:1527486-16-3TAMRA-azide-PEG3-Biotin)反应的特点!
![[C language] Address book](/img/56/a72900c22b965947ee88256d8f6c21.jpg)
[C language] Address book "Static Memory Version"

高校就业管理系统设计与实现

Solidity最强对手:MOVE语言及新公链崛起

惊掉你下巴,程序员编码竟然可以被 996 指数化

渗透测试与攻防对抗——漏洞扫描&逻辑漏洞(Part1)

即时通讯开发如何撸一个WebSocket服务器

关于HBuilder X鼠标变为_ 替换字符的问题

How to add control panel to right click menu in win7
随机推荐
Xi'an biotin-tetrapolyethylene glycol-amide-4phenol light yellow semi-solid
Win7怎么把控制面板添加到右键菜单
【CAS:41994-02-9 |Biotinyl tyramide】生物素基酪氨酰胺价格
Leetcode82. 删除排序链表中的重复元素 II
Web性能测试模型小结
CAS:183896-00-6 (Biotin-PEG3-C3-NH2) PEG derivative
无js实现弹出层效果
02|运算符
[obs] obsqsv11 hard coding and comparison with metartc codec
c语言指针练习题
Kubernetes YAML编写 讲解
R语言使用cox函数构建生存分析回归模型、使用subgroupAnalysis进行亚组分析并可视化森林图
Kubernetes 开发环境比对
CVPR22 Oral|通过多尺度token聚合分流自注意力,代码已开源
Leetcode83. 删除排序链表中的重复元素
DALL·E-2是如何工作的以及部署自己的DALL·E模型
3.11-程序基本的控制语句 3.12-表达式 3.13-数据类型 3.14-常量/变量 3.15-标识符
关于HBuilder X鼠标变为_ 替换字符的问题
你有对象类,我有结构体,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang结构体(struct)的使用EP06
XSS高级 svg 复现一个循环问题以及两个循环问题