String & StringBuffer & StringBuilder
String:
String类型的实例一旦被创建,其值在内存中就不可变,程序中实现修改String类型变量的值是在内存中重新开辟的一块存储空间用于接收新值,原来的内存空间依然存在,直至该实例被消除
StringBuffer:
StringBuffer类型支持修改字符串的值,可以在最终值不再变化时使用toString()方法接收一个String类型,并且StringBuffer是线程安全的,他的底层实现类使用了synchronized关键字加以修饰
StringBuilder:
StringBuilder是在StringBuffer之后出现的,他也支持修改字符串的值,并且是线程不安全的,性能得到了提升,适用于对线程无要求的场景