javaString类三点注意--学习笔记
- String是不可变字符串对象,改变String的值只会创建一个新对象,不会改变原来指向的对象,若原来指向的对象没有其它变量引用,则会被系统回收
- 只要是以"字符串"创建的字符串对象,会存储到字符串常量池中,且相同内容的字符串只会存储一份
例如String a = "abc"; String b = "abc";以上代码中,a和b实际上都是指向同一个字符串,又因字符串不可变,所以这种存储方式可以节省很多内存
-
但以new方式创建的字符串对象,每new一次都会产生一个新对象存放在堆内存中
例如
char[] chs = {'a','b'.'c'}; String a = new String(chs); String b = new String(chs);上面代码中,a与b指向的是不同的字符串对象