当前位置:网站首页>为什么字符串一旦创建就不可以改变?
为什么字符串一旦创建就不可以改变?
2022-08-10 00:25:00 【@ljn】
理解:
字符串的值一旦被创建,就不能改变指的是字符串的内容不能发生改变。而不是字符串的引用不能发生改变
背景:
String字符串的特点
Java程序中所有的双引号字符串,都是String类型的对象。
字符串不可变,它们的值在创建后不能被更改。
虽然String的值是不可变的,但是它们可以被共享。
解释说明:
字符串常量池:当使用双引号创建字符串对象时候,系统会检查该字符串是否在字符串常量池中存在,若不存在则创建,存在:不会创建,而是直接复用。(看以下四幅图片)
(1)第一幅
(2)第二幅
(3)变量用+号相连
解释:当字符串之间使用+号 串联(拼接)的时候,系统底层会自动创建一个StringBuilder对象,然后再调用其append方法完成拼接,拼接后调用toString方法转换为String类型。
(4)常量用+号相连
Java存在常量优化机制,在编译的时候,就会将“a”+“b”+“c”拼接为abc;
边栏推荐
猜你喜欢
Enhanced Deep Residual Networks for Single Image Super-Resolution
PEG derivative Biotin-PEG1-OH (cas: 95611-10-2, 2-biotinaminoethanol) advantage description
算法---整数替换(Kotlin)
Mysql数据库 ALTER 基本操作
What do you know about FITC-labeled biotin (FITC-biotin|CAS: 134759-22-1)?
小程序实现搜索功能续
游泳馆系统次卡的设置有哪些细节?
GBJ1510-ASEMI机器人电源整流桥GBJ1510
Biotin-Cy2 Conjugate,生物素-Cy2 偶联物_Cy2 生物素偶联物
CAS:851113-28-5 (Biotin-ahx-ahx-tyramine)
随机推荐
服装店管理系统如何推送活动?
CAS:851113-28-5 (Biotin-ahx-ahx-tyramine)
Kubernetes YAML编写 讲解
win10重装系统后没声音怎么办?
无js实现弹出层效果
Aptos 深度解读:机遇、挑战与风险
eyb:Redis学习(4)
Leetcode82. 删除排序链表中的重复元素 II
-红与黑-
OSS-访问oss生成的url无法访问,直接下载问题
02| operator
XSS高级 svg 复现一个循环问题以及两个循环问题
-Chess game-
开发IM即时通讯容易吗?需要什么技术
收银管理软件如何做好员工管理?
c语言文件基本操作总结
Redis 非关系型数据库学习(一) ---- Redis 的安装
最高月薪15K,谁有历经千辛万苦的意志,谁就能收获属于自己的成功~
Mysql database ALTER basic operations
【Django】缓存