字符串
我们都知道字符串类型是不能改变的,但我们可以对字符串进行重新赋值。
重要的是需要知道当你创建了一个字符串到底发生了什么。
当一个变量赋值成了
Java是改变了引用,这是有好处的,就是可以节约内存。但不指向的字符串还会存在么?
那这跟字符串不可改变有什么关系呢?如果两个变量都指向同一个字符串,如果其中一个变量修改了字符串,那另一个引用是不是就会被改变了。因为字符串是不可变的所以我们可以使用无数多的变量去引用字符串。因为我们知道字符串是不会被改变的。
如果使用new String去创建字符串,那就不会使用字符串池中的字符串。而是会创建一个字符串对象。尽管他们的值是相同的,只能说一个人叫张三,另一个人也叫三张,但这两个人不是同一个人。
双等号,使用的是查看地址是否相同。
Java第二个使用不可变字符串的原因是安全。因为其它变量可以改变字符串的值。可以编写一些恶意代码。