原文地址:String in Java
今天看到一篇文章,觉得很有用,特意记下来。
总结:
区别:
1.String是不可变的,原因是其用于存储字符序列的char[] value数组被用final修饰了。
2.StringBuffer的char[] value数组初始化长度是参数长度+16,所以可以使用其append()方法追加字符串。
3.StringBuilder与StringBuffer类似,不同点是其方法没有被关键字synchronized修饰,所以它线程不安全,但它的效率要比StringBuffer高。

效率:
1.直接使用字符串常量“+”连接效率最高,例:String str = "abc"+"d";。
2.append()方法的效率高于String对象的"+"连接运算。
3.使用String类的intern()方法,可缓解因多次创建对象带来的程序低效问题。