String类的对象是一个常量对象,是不能改变的:
public class StringBufferAndString { public static void main(String[] agrs){ String str = "abc";//str引用的对象是一个常量对象; str = "123"; //通过把“123”的引用赋值给str,则str的对象成为了“123”。 //原来的“abc”则没有引用。变成了垃圾内存。若一直给str赋值引用, //则str的对象一直改变,上次被赋值的引用的对象则成为了垃圾内存。 StringBuffer sb = new StringBuffer();//构造StringBuffer的时候,默认是16字符,满了后,系统自动增加。 String str1 = "1234"; String str2 = "abcd"; sb.append(str1); sb.append(str2); //把str1和str2添加到StringBuffer里,但是str1和str2原来的引用没有改变 //不会想直接给str赋值引用,那样变成垃圾内存。 System.out.println(sb.toString()); //访问StringBuffer System.out.println(str1+"/t"+str2);//访问原来的str1和str2. sb.delete(2,5); //删除的索引是2、3、4,但是不包括5! System.out.println(sb); sb.insert(3, "FFF");//在索引3后插入字符串; System.out.println(sb); }}