String和另外两个对比:
1.String是不可变的,一经创建长度固定,StringBuffer,StringBuilder为可变字符串;
(String追加的时候用的’+’,会在内存中重新创建字符串对象);
2.String可以赋值为null,而后两者不可以;
StringBuffer,StringBuilder的区别:
StringBuffer,线程安全,效率低;StringBuilder线程不安全,效率高;
StringBuffer为啥线程安全呢?因为StringBuffer的方法中几乎都带有关键字(synchronized)
综上:
(1)如果要操作少量的数据用 String;
(2)多线程操作字符串缓冲区下操作大量数据 StringBuffer。
(3)单线程操作字符串缓冲区下操作大量数据 StringBuilder。