String、StringBuilder、StringBuffer的不同

来源:互联网 发布:莫扎特圆号协奏曲软件 编辑:程序博客网 时间:2024/06/06 02:23

1、三者的运行速度方面的不同:StringBuilder > StringBuffer > String;

2、速度慢的原因之一是:String是不可改变的对象,而StringBuilder和StringBuffer是可以改变的对象;

3、StringBuilder和StringBuffer线程方面的不同:StringBuilder线程不安全、速度快;StringBuffer线程安全的、速度慢;

对于三者的总结

1、如果想要操作少量的数据用:String

2、单线程操作字符串缓冲区下操作大量数据:StringBuilder;

3、多线程操作字符串缓冲区下操作大量数据:StringBuffer;

String是一种特殊的final类,至于StringBuilder和StringBuffer其实也是一种final类,都是不可以被继承的类;

String.class StringBuffer.classStringBuilder.class

三个类其实都是对 char[] 数组的操作,String里面的 char[] 数组是final类型的一旦被指定就不能修改,而且String没有对 char[] 数组操作的方法,另外两个类的 char[] 数组没有定义final,虽然他们本身是final 类,但是他们定义的变量不能指向其他对象,但是他们本身 char[] 是可以改变的,并且他们提供了对 char[] 数组操作的方法。例如如果用String进行字符串拼接,那么会创建很多对象,但是用StringBuilder和StringBuffer进行字符串拼接,使用append方法没有创建过多的对象。

原创粉丝点击