java如何证明字符串是不可变的 |
您所在的位置:网站首页 › 中文字符怎么写的 › java如何证明字符串是不可变的 |
如何证明字符串是不可变的 字符串不可变的这个事我曾写过两篇文章,写到最后我都要吐了。但是仍然会有一些同学弄不明白,隔段时间就有人私信我,我就不得不把之前的文章放到收藏夹,问的时候我就把链接发给他。 之所以造成这个混乱,有很多因素,比如说,Java 到底是值传递还是引用传递?字符串常量池是个什么玩意? 这次又不得不谈,虽然烦透了,但仍然要证明啊! public class StringImmutabilityTest { public static void main(String[] args) { String s1 = "沉默王二"; String s2 = s1; System.out.println(s1 == s2); s1 = "沉默王三"; System.out.println(s1 == s2); System.out.println(s2); } }登录后复制输出结果如下所示: true false 沉默王二登录后复制1)String s1 = "沉默王二",Java 在字符串常量池中创建“沉默王二”这串字符的对象,并且把地址引用赋值给 s1 2)String s2 = s1,s2 和 s1 指向了同一个地址引用——常量池中的那个“沉默王二”。 所以,此时 s1 == s2 为 true。 3)s1 = "沉默王三",Java 在字符串常量池中创建“沉默王三”这串字符的对象,并且把地址引用赋值给 s1,但 s2 仍然指向的是“沉默王二”那串字符对象的地址引用。 所以,此时 s1 == s2 为 false,s2 的输出结果为“沉默王二”就证明了字符串是不可变的。 以上就是java如何证明字符串是不可变的的详细内容,更多请关注php中文网其它相关文章! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |