最终类。代表字符串的类,所有的字符串都是String的对象。
字符串是一个常量,定义好之后不可改变。
因为字符串是一个常量,所以它是被共享的 — 只要值相同,用的都是同一个字符串
字符串本质上是一个不可变的字符数组
String str = “abc”; — 1
String str = new String(“abc”); — 2
String str = “a”; — 1
str = str + “b”; -> str = new StringBuilder(str).append(“b”).toString();— 4
String[] strs = {/* 100个元素 */};
// 将字符串数组中的所有元素进行拼接
// 使用+进行拼接 --- 整个过程要产生301个对象
String str = “”; // 1
for(String s : strs)
str += s; // 每拼接1次要额外产生3个对象,拼接100次要额外产生300个对象
// 使用StringBuilder进行拼接 --- 整个过程中要额外产生102个对象
StringBuilder sb = new StringBuilder(); // 1
for(String s : strs)
sb.append(s); // 每拼接1次要额外产生1个对象,拼接100次要额外产生100个对象
String str = sb.toString(); // 1
如果拼接的字符串个数比较多,建议使用StringBuilder;如果个数比较少的话可以使用+