1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String
2.String <(StringBuffer,StringBuilder)的原因
1 String:字符串常量 2 StringBuffer:字符创变量 3 StringBuilder:字符创变量 4 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。
String最慢的原因:为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。
3.StringBuilder与 StringBuffer
1 StringBuilder:线程非安全的 2 StringBuffer:线程安全的 3 当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。
当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。
对于三者使用的总结:
1.如果要操作少量的数据用 = String 2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder 3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer String,StringBuffer与StringBuilder的区别 String:字符串常量 StringBuffer:字符串变量(线程安全) StringBuilder:字符串变量(非线程安全)