一、String对象不可变,也就是String对象不能被操作
final修饰表示value对象初始化后 就不能被修改了
String 在构造器中给value赋值
所以String对象是不能被修改的。
普及常识(String str = ‘123’ + ‘345’;)这里在jvm中会创建三个对象,‘123’,‘345’, ‘123345’
表面上看来是相加了,而实际上是一个新的对象
二、StringBuffer、StringBuilder的值是可变的
StringBuffer、StringBuilder 都继承自 AbstractStringBuilder
在构造器中调用的是AbstractStringBuilder的方法
在AbstractStringBuilder中value是可操作的
同步锁,在多线程使用中 是线程安全的。这也导致StringBuffer速度和性能没有StringBuilder快