最终类。代表字符串的类,所有的字符串都是String的对象。
字符串是一个常量,定义好之后不可改变。
因为字符串是一个常量,所以它是被共享的 --- 只要值相同,用的都是同一个字符串
字符串本质上是一个不可变的字符数组
String str=“abc”->str=“def”的=内存变换
String str=“abc”和String str=new String("abc")的区别
注意:在String中提供了一系列操作而不改变原字符串的方法,大部分都是产生了一个新的字符串,所以效率较低
String和StringBuilder和StringBuffer的区别:
String是一个不可变类,每次进行操作时会产生新的对象。
StringBuider的连接操作速度是最高的。
StringBuffer的连接操作速度介于俩者之间。原因是线程安全的。
(每个方法都用synchronized修饰)
public synchronized StringBuffer append(CharSequence s) {
toStringCache = null;
super.append(s);
return this;
}