首页 > 代码库 > JAVA中 String 、StringBuffer和StringBuilder 的区别

JAVA中 String 、StringBuffer和StringBuilder 的区别

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 的实现几乎一样,只是前者适合单线程环境下使用,后者适合多线程环境下使用,单线程条件下前者要比后者性能好一些。