字符串是敞亮,它们的值在创建之后不能更改
字符串的内容一旦发生了变化,那么马上回创建一个新的对象

public class Demo1{
    public static void main(String[] args){
        String str = "hello";
        str = str + " world";
        System.out.println(str);
    }
}

例:

public class Demo2{
    public static void main(String[] args){
        String str1 = "hello";
        String str2 = str1 + " world";
        System.out.println("str1与str2是同一个对象?"+(str1 == str2));
    }
}

注意:字符串的内容不适宜频繁修改,因为一旦修改马上就会创建一个新的对象。

如果需要频繁修改字符串内容,建议使用字符串缓冲类(StringBuffer);
StringBuffer其实就是一个存储字符的容器

添加数据:
  append();

public class Demo2{
    public static void main(String[] args){
        //使用StringBuffer无参的构造方法创建一个字符缓冲类
        StringBuffer sb = new StringBuffer();
        sb.append(java);
        sb.append(java);
        
    }
}

StringBuffer底层是以来了一个字符数组才能存储字符数据的,该字符串数组默认的初始容量是16个字符
如果字符数组的长度不够使用时,自动增长一倍+2(一般都说一倍);