Stirng:安全
String 是不可变的对象,在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String对象,而后将指针指向新的 String 对象,因此常常改变内容的字符串最好不要用 String ,由于每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了之后, JVM 的 GC 就会开始工做,那速度是必定会至关慢的。ide
StirngBuffer:性能
每次更改都会对 StringBuffer 对象自己进行操做,而不是生成新的对象,再改变对象引用。因此在通常状况下咱们推荐使用 StringBuffer ,特别是字符串对象常常改变的状况下。ui
StringBuilder:线程
StringBuilder 是 JDK5.0 中新增长的一个类,StringBuffer 线程安全的可变字符序列。相似于 String 的字符串缓冲区,但不能修改。与StringBuffer 类相比,一般应该优先使用 StringBuilder 类,由于它支持全部相同的操做,但因为它不执行同步,因此速度更快。 可是若是将 StringBuilder 的实例用于多个线程是不安全的。须要这样的同步,则建议使用 StringBuffer 。指针
基原本说都是在性能上都是 StringBuilder > StringBuffer > String。对象