一、StringBuilder
StringBuilder代表可变字符串对象,相当于是一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的。
好处:StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁。
StringBuffer与StringBuilder
注意:
StringBuffer的用法与StringBuilder是一模一样的
但 StringBuilder是线程不安全的 StringBuffer是线程安全的
问:为什么对于字符串相关的操作,如频繁的拼接、修改等,建议用StringBuidler?
String 是不可变字符串、频繁操作字符串会产生很多无用对象,性能差。(String进行字符串拼接时会在堆内存中新建两片地址空间,创建两个对象,占用内存,详解见视频)
StringBuilder:是内容可变的字符串、拼接字符串性能好、代码优雅。
注意:如果操作字符串较少,或者不需要操作,以及定义字符串时,则用String。StringBuilder不可以调用String的方法,如果使用String的方法,需要ToString();
二、StringJoiner
JDK8开始才有的,跟StringBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的。
好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁。