一、String
背景知识:Java String 类 | 菜鸟教程
String不是基本数据类型,而是一个对象。
private final char value[]
从底层源码来看是一个final类型的字符数组,所引用的字符串不能被改变,一经定义,无法再增删改。每次对String的操作都会生成新的String对象。
每次+操作: 隐式在堆上new了一个跟原字符串相同的StringBuilder对象,再调用append方法拼接+后面的字符
二、StringBuilder、StringBuffer
参考文章: Java StringBuffer 和 StringBuilder 类 | 菜鸟教程
使用场景:当对字符串进行修改时,需要使用StringBuffer和StringBuilder类
和String类的区别: StringBuffer和StringBuilder类的对象能够被多次的修改,并且不会产生新的未使用对象。