偶然看了一下api,发觉有这么一句话,有点惊喜:Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的。
是不是说现在用“+”串联两个字符串相当于用StringBuilder或StringBuffer的append方法呢!!
是不是说现在用“+”串联两个字符串相当于用StringBuilder或StringBuffer的append方法呢!!
可以用函数Sting concat(String) 这个才相当于+;
对于StringBuilder,相当于一个数组,append 方法和string 的+ 不太一样,和Vetor 中的 add 差不多
String类定义时用到了final修饰符
也就是说String对象其实都是常量,不能进行修改操作
String对象进行"+"操作时
其实是先把String转化成StringBuffer类型
然后使用StringBuffer类中的append方法将所有的字符串串联起来
然后使用StringBuffer类中的toString方法转换成String类型
然后返回这个String对象
这样的话就增加了程序进行类型装换的开销
所有如果拼接字符串的操作比较频繁,建议使用StringBuffer减小系统开销
有的地方 如果用 + 程序涉及到装箱,拆箱的问题,程序效率降低
+是在 开辟一块新空间,存放最后拼接的值,然后在指向