String 内容定义成 final char[],只能在属性和构造函数中赋值,其它地方不能改变 ;String 覆盖实现了 equals 。
StringBuffer 内容定义成了 char[] ,但没实现 equals。
String 和 StringBuffer 的区别是:
1、String 通过构造新的String 实现可变字符串,而 StringBuffer 通过改变内部的内容属性来实现可变字符串。
2、new String("ABC").equals("ABC") == true ,new StringBuffer("ABC") .equals("ABC") == false 。
3、"ABC".toString() == "ABC",new StringBuffler("ABC") .toString() != "ABC" 。
4、String 可以通过+号连接字符串,StringBuffer通过内部方法实现字符串的追加和插入等操作。
StringBuilder 和 StringBuffer 的实现几乎一样,只是前者适合单线程环境下使用,后者适合多线程环境下使用,单线程条件下前者要比后者性能好一些。
JAVA中 String 、StringBuffer和StringBuilder 的区别,布布扣,bubuko.com
JAVA中 String 、StringBuffer和StringBuilder 的区别
原文地址:http://www.cnblogs.com/hanbaojun/p/3816458.html