java 中操作字符串都有哪些类?它们之间有什么区别?

java中操作字符串的类有哪些?
String
StringBuffer
StringBuilder

java 中操作字符串都有哪些类?它们之间有什么区别?

我认为所有的有什么区别的问题,都可以这样回答

A这个类是干什么的
B这个类是干什么的
这两个类你都说完了之后,然后说A和B那里不一样,应该就可以了吧,
在好点的话说说什么情境下使用A,什么情景下使用B,理由是什么.应该就ok了

我的答案
①:java中操作字符串的类,我知道的有三个类,分别是String,StringBuffer和StringBuilder
②:.这三个类都是以char[]的形式保存的字符串,但是String类型的字符串是不可变的,对String类型的字符床做修改操作都是相当于重新创建对象.而对StringBuffer和StringBuilder进行增删操作都是对同一个对象做操作.
③:StringBuffer中的方法大部分都使用synchronized关键字修饰,所以StringBuffer是线程安全的,StringBuilder中的方法则没有,线程不安全,但是StringBuilder因为没有使用使用synchronized关键字修饰,所以性能更高,在单线程环境下我会选择使用StringBuilder,多线程环境下使用StringBuffer.
④:如果声明的这个字符串几乎不做修改操作,那么我就直接使用String,因为不调用new关键字声明String类型的变量的话它不会在堆内存中创建对象,直接指向String的常量池,并且可以复用.效率更高;