String,StringBuffer是线程安全的,StringBuilder是线程不安全的。
对于String,每次给它赋新的值,会重新创建一个String对象,如果时间长了,会导致内存占用过多,JVM采用GC进行内存回收。
而StringBuffer和StringBuilder每次赋新的值时,不会重新创建一个String对象。
所以如果需要频繁修改String对象,推荐使用StringBuffer和StringBuilder。
StringBuffer和StringBuilder有两个方法,append和insert,append每次会把字符串添加在当前对象的最后,而insert可以选择插入位置。
String的内部是使用char数组来保存字符串的。