String s2=s1+"b";//是调用stringBuffer操作并创建一个String对象也就是说+操作符使用StringBuffer的append方式实现的最后返回
一个新创建的String对象而不是string常量。"a"+"b"等价于"ab",只是生成一个字符串常量,保存在栈中而String s2=s1+"b";保存在堆中。凡是字符串变量与字符串变量或者字符串常量之间使用+都会产生一个String对象到堆中,凡是String s="a"+"b";或者String s="ab";产生一个字符串常量在栈中。凡是在for循环中遇到字符串+操作的最好使用StringBuffer的append方法替代它,否则会因数据量过大而产生内存异常。