偶然看了一下api,发觉有这么一句话,有点惊喜:Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的。
是不是说现在用“+”串联两个字符串相当于用StringBuilder或StringBuffer的append方法呢!!

解决方案 »

  1.   

    不是  我觉得它的意思是 当你要频繁做字符串连接的时候 最好要用StringBuilder或者StringBuffer的append来做 这样效率高 节省资源  然后StringBuilder和StringBuffer对象可以通过toString方法转换成String对象因为直接用+去连接字符串 很有可能额外产生多余的字符串对象  是对资源的一种浪费
      

  2.   

    字符串连接的方式很多,对于string  可以直接用+,
    可以用函数Sting concat(String)  这个才相当于+;
    对于StringBuilder,相当于一个数组,append 方法和string 的+  不太一样,和Vetor  中的  add 差不多
      

  3.   

    不是这样的
    String类定义时用到了final修饰符
    也就是说String对象其实都是常量,不能进行修改操作
    String对象进行"+"操作时
    其实是先把String转化成StringBuffer类型
    然后使用StringBuffer类中的append方法将所有的字符串串联起来
    然后使用StringBuffer类中的toString方法转换成String类型
    然后返回这个String对象
    这样的话就增加了程序进行类型装换的开销
    所有如果拼接字符串的操作比较频繁,建议使用StringBuffer减小系统开销
      

  4.   

    StringBuffer中的append()方法有14种重载
    有的地方 如果用 +    程序涉及到装箱,拆箱的问题,程序效率降低
      

  5.   

    对于+, 编译器确实会自动变成StringBuilder做处理的。
      

  6.   

    编译器确实是用stringBuilder实现的
      

  7.   

    StringBuffer 相率高呢,开辟的是一块内存空间。
    +是在 开辟一块新空间,存放最后拼接的值,然后在指向
      

  8.   

    + 是不断的new String 把加到得赋给新的