当前位置:网站首页>为什么字符串一旦创建就不可以改变?
为什么字符串一旦创建就不可以改变?
2022-08-10 00:25:00 【@ljn】
理解:
字符串的值一旦被创建,就不能改变指的是字符串的内容不能发生改变。而不是字符串的引用不能发生改变
背景:
String字符串的特点
Java程序中所有的双引号字符串,都是String类型的对象。
字符串不可变,它们的值在创建后不能被更改。
虽然String的值是不可变的,但是它们可以被共享。
解释说明:
字符串常量池:当使用双引号创建字符串对象时候,系统会检查该字符串是否在字符串常量池中存在,若不存在则创建,存在:不会创建,而是直接复用。(看以下四幅图片)
(1)第一幅
(2)第二幅
(3)变量用+号相连
解释:当字符串之间使用+号 串联(拼接)的时候,系统底层会自动创建一个StringBuilder对象,然后再调用其append方法完成拼接,拼接后调用toString方法转换为String类型。
(4)常量用+号相连
Java存在常量优化机制,在编译的时候,就会将“a”+“b”+“c”拼接为abc;
边栏推荐
猜你喜欢
openEuler 知:abi 检测
What do you know about FITC-labeled biotin (FITC-biotin|CAS: 134759-22-1)?
Docker interview question 2--get the number of database connections and docker-compose
算法---整数替换(Kotlin)
嵌入式Qt-实现两个窗口的切换
Docker 面试题2则--取数据库连接数和docker-compose
《痞子衡嵌入式半月刊》 第 60 期
c语言结构体、函数以及指针练习(简单通讯录)
Biotin-Cy2 Conjugate, Biotin-Cy2 Conjugate_Cy2 Biotin Conjugate
flask——请求、响应、请求扩展、session、闪现、蓝图、g对象、flask-session
随机推荐
03|流程控制
手把手教你编写性能测试用例
技术分享 | 接口自动化测试如何处理 Header cookie
Solving for the number of mines
Stanford CS143 Speed Pass PA1 Tutorial
Biotin-Cy2 Conjugate, Biotin-Cy2 Conjugate_Cy2 Biotin Conjugate
Aptos 深度解读:机遇、挑战与风险
DALL·E-2是如何工作的以及部署自己的DALL·E模型
Mysql数据库 ALTER 基本操作
Leetcode83. 删除排序链表中的重复元素
数据的存储——C语言
改变社交与工作状态的即时通讯是什么呢?
@PostConsturct注解作用及特点
移动终端数据业务高安全通信方案研究
Win7怎么把控制面板添加到右键菜单
Enhanced Deep Residual Networks for Single Image Super-Resolution
-red and black-
Kubernetes服务接入Istio
c语言文件基本操作总结
-红与黑-