java如何证明字符串是不可变的

java如何证明字符串是不可变的

这篇文章主要介绍了java如何证明字符串是不可变的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

如何证明字符串是不可变的

java如何证明字符串是不可变的

字符串不可变的这个事我曾写过两篇文章,写到最后我都要吐了。但是仍然会有一些同学弄不明白,隔段时间就有人私信我,我就不得不把之前的文章放到收藏夹,问的时候我就把链接发给他。

之所以造成这个混乱,有很多因素,比如说,Java 到底是值传递还是引用传递?字符串常量池是个什么玩意?

这次又不得不谈,虽然烦透了,但仍然要证明啊!

publicclassStringImmutabilityTest{publicstaticvoidmain(String[]args){Strings1="沉默王二";Strings2=s1;System.out.println(s1==s2);s1="沉默王三";System.out.println(s1==s2);System.out.println(s2);}}

输出结果如下所示:

truefalse沉默王二

1)String s1 = "沉默王二",Java 在字符串常量池中创建“沉默王二”这串字符的对象,并且把地址引用赋值给 s1

2)String s2 = s1,s2 和 s1 指向了同一个地址引用——常量池中的那个“沉默王二”。

所以,此时 s1 == s2 为 true。

3)s1 = "沉默王三",Java 在字符串常量池中创建“沉默王三”这串字符的对象,并且把地址引用赋值给 s1,但 s2 仍然指向的是“沉默王二”那串字符对象的地址引用。

所以,此时 s1 == s2 为 false,s2 的输出结果为“沉默王二”就证明了字符串是不可变的。

感谢你能够认真阅读完这篇文章,希望小编分享的“java如何证明字符串是不可变的”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!

发布于 2022-03-17 21:19:02
收藏
分享
海报
0 条评论
39
上一篇:java如何统计字符串中的单词数 下一篇:java如何判断一个字符串是前后对称的
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码