public class StringDemo2 { public static void main(String[] args){ //1.每次试图修改字符串对象实际上是产生了新的字符串对象,变量每次都是指向了新的字符串对象,之前字符串对象的内容确实没有改变,所以说字符串对象的内容是不可变的 //例子: String k1 = "abc"; k1 += "def"; k1 += "ghi"; System.out.println(k1);//之前字符串对象的内容确实没有改变,只是新产生了一个字符串对象,变量指向了新的字符串对象而已 //2.只要是双引号给出的字符串对象,会存储到常量池中,而且内容相同时只会存储一份。 String k2 = "abc"; String k3 = "abc"; System.out.println(k2 == k3);//true (地址相同,内容一样)返回true //3.new String方式创建字符串对象,每次new出来的都是一个新对象,会存储到堆内存当中。 char[] chars1 = {'a', 'b', 'c'};//字符数组 String k4 = new String(chars1); String k5 = new String(chars1); System.out.println(k4 == k5);//false 原因:地址不同 } }
String的值得注意的点:
最新推荐文章于 2024-07-13 13:55:40 发布