Java中操作字符串有哪些类?它们之间的区别

 Java中共有三个:String、StringBuilder、StringBuffer

区别:

String:String类声明的是不可变的对象(也就是每次操作时会重新产生一个新的String对象,在上面操作,原来的对象不变)

StringBuilder:声明的是可变的对象,查看源码,可以看出StringBuilder的对象没有synchronized修饰,所以StringBuiilder非线程安全

StringBuffer:声明的是可变的对象,查看源码,可以看出StringBuffer的对象有synchronized修饰,所以StringBuffer是线程安全的

所以三者效率为:StringBuilder>StringBuffer>String

当考虑线程安全时,使用StringBuffer

共同点:

String、StringBuilder、StringBuffer三者的底层实现都是Char数组,三者大部分方法都是相同的。

你可能感兴趣的:(java,开发语言,后端)