一、String 不可变
String 对象创建后内容不可改,每次”修改”都生成新对象。字符串字面量存常量池复用,所以 "a"+"b" 在编译期就合并,而运行时 + 拼接会生成新 String。
二、StringBuilder vs StringBuffer
| 类 | 线程安全 | 场景 |
|---|---|---|
| StringBuilder | 不安全(快) | 单线程拼接,循环里用它 |
| StringBuffer | 安全(synchronized) | 多线程拼接 |
StringBuilder sb = new StringBuilder();
sb.append("a").append("b");
String s = sb.toString(); // 循环拼接用这个,别用 +
三、常用方法
length()长度、charAt(i)取字符;substring(a,b)截取、trim()去空白;equals()比内容(别用==)、equalsIgnoreCase()忽略大小写;split()按正则拆分、replace()替换。
性能口诀:循环/大量拼接用 StringBuilder,单次拼接用 + 无妨(编译器会优化)。