Java中String类的值在创建后不可修改问题
在java中对于String类型字符串的值一旦创建后就不可更改的问题,对于刚入门的小伙伴难以理解,明明我就把string的值改变了呀,为什么说不能修改呢?
String a ="hello";String b = "java";a = a + b;
a的输出结果为 hellojava,a的值明明就改变了。
事实上String对象内容的改变是通过内存地址的改变来完成的,而其对象本身内容没有改变。
如图:
那么怎么验证呢?
public class demo01 {
public static void main(String[] args) {
String a ="hello";
System.out.println(System.identityHashCode(a));
String b = "java";
System.out.println(System.identityHashCode(b));
a = a + b;
System.out.println(System.identityHashCode(a));
}
}
象的地址并不一定样,说明a=a+b;后a的地址已经变了,不再指向原来的地址。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)