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


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

Java存在常量优化机制,在编译的时候,就会将“a”+“b”+“c”拼接为abc;
边栏推荐
猜你喜欢

Win11怎么关闭系统保护功能?系统保护还原功能怎么关闭?

Docker 面试题2则--取数据库连接数和docker-compose

鲜花线上销售管理系统的设计与实现

Leetcode82. 删除排序链表中的重复元素 II

What do you know about FITC-labeled biotin (FITC-biotin|CAS: 134759-22-1)?

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

Pagoda measurement - building LightPicture open source map bed system

win10重装系统后没声音怎么办?

线程的同步与互斥

收银管理软件如何做好员工管理?
随机推荐
阿里云混合云管理平台多Region架构
Web性能测试模型小结
2022金九银十工作潮,怎么样才能成功跳槽面试拿到高薪呢?
技术分享 | 接口自动化测试如何处理 Header cookie
Mysql database ALTER basic operations
-Pickling peanuts-
R语言使用glm函数构建logistic回归模型,使用forestmodel包的forest_model函数可视化逻辑回归模型对应的森林图
Interlay集成至Moonbeam,为网络带来interBTC和INTR
什么是持续测试?
CAS:851113-28-5 (生物素-ahx-ahx-酪胺)
Redis 非关系型数据库学习(一) ---- Redis 的安装
【Django】缓存
高校就业管理系统设计与实现
Moonbeam网络维护模式(Maintenance Mode)解读
【CAS:41994-02-9 |Biotinyl tyramide】生物素基酪氨酰胺价格
数据的存储——C语言
Mysql数据库 ALTER 基本操作
ITK编译remote库
CAS:183896-00-6 (Biotin-PEG3-C3-NH2) PEG derivative
【软考软件评测师】软件测试基础知识