速度: StringBuilder > StringBuffer > String
1、String 是不可变的对象, StringBuilder和StringBuffer是可变对象。
当 String str = "test" + "hello" ;
StringBuffer Sb = new StringBuilder("test").append(“ hello”);
String 效率是远要比 StringBuffer 快。
因为 JVM 把 String str = "test" + "hello" 解释为:String str = "test hello" ;所以要快。
但是若 String str = "test"; String str1 = "hello" ;
String str2= str + str1; 现在JVM 就会按照常理去new 对象了,速度就慢了。
所以大部分 StringBuffer > String
2、StringBuffer 的字符缓冲区 是不可修改的。因此是 线程安全的。
3、StringBuilder 线程不安全。
详细文档:http://apps.hi.baidu.com/share/detail/33501758