java中String、StringBuffer和StringBuilder的区别
java中用于处理字符串常用的有三个类:
java.lang.String
java.lang.StringBuffer
java.lang.StrungBuilder
共同之处:
1、三个都是final类,不允许被继承.
2、StringBuffer与StringBuilder两者共同点是可以通过append、insert进行字符串的操作。
区别:
1、运行速度快慢为:StringBuilder > StringBuffer > String,String最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。
2、StringBuffer是线程安全,StringBuilder是线程不安全的。StringBuffer可以不需要额外的同步用于多线程中;StringBuilder是非同步,运行于多线程中就需要使用着单独同步处理,但是速度就比StringBuffer快多了;
3、StringBuffer长度和内容可变,String不可变
String实现了三个接口:Serializable、Comparable<String>、CarSequence
StringBuilder只实现了两个接口Serializable、CharSequence,相比之下String的实例可以通过compareTo方法进行比较,其他两个不可以。

赋值操作:
StringBuffer sb=new StringBuffer("abcdefjhe"); ok
StringBuffer sb="abcdefjhe"; //not ok
总结一下
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
浙公网安备 33010602011771号