1.String使用时的注意事项
第一点:
①String对象的内容不可改变,被称为不可变字符串对象。(因为字符串是引用类型,每次都是引用一个地址,就相当于你有车,但是你不可能天天把车踹兜里,只能把钥匙踹兜里,然后你每次买一辆车,是不是就是兜里多了一把钥匙,使用之前哪把你是不可能改变的)
注意:只要以"..."方式写出的字符串对象,会在堆内存中的字符串常量池中存储。
运算是会反在堆里,不会在常量池,使用运算的根常量池的不一样,像下面这种,是一个变量加一个"..."这种就是不一样的
这种就是true
结论:每次试图改变字符串对象实际上是新产生了新的字符串对象了,变量每次都是指向了新的字符串对象,之前字符串对象的内容确实是没有改变,因此说String的对象是不可变的。
第二点:
①只要以"..."方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份;(因为这个只是引用一个地址值,表示创一个新的地址值,为了节约空间,每一个new都new了一块空间出来)
②但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中(每次new都会在堆new出一个空间,空间地址肯定不一样)