补充:String 的比较 --- 常量优化
String s1 = "a" + "b" + "c"; // 编译器直接帮助拼接了
String s2 = "abc";
System.out.println(s1 == s2); // true
String s3 = "ab";
String s4 = "abc";
String s5 = s3 + "c"; // 有了变量,那就得搞个新对象
System.out.println(s4 == s5); // false
StringBuilder
包路径:java.lang.StringBuilder
;可变字符序列
字符串缓冲区,让字符串拼接变得高效。
普通的String类在底层是被final修饰的byte数组,而
StringBuilder底层是没有被final修饰,所以可以改变内容。
import java.util.Date;
// 构造方法
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder("add something");
// append方法;添加任意类型数据的字符串形式,并返回对象自身
// 接受任意类型;--- 重载,调用对应的字符形式(toString())
// 返回对象自身;方便链式调用
StringBuilder sb3 = new StringBuilder();
sb3.append("中文").append('c').append(1).append(true).append(new Date());
System.out.println(sb3); // println自动调用toString();
// reverse() 反转字符串
sb1.reverse();
// @Override
// toString() 转换为不可变的String对象
String str3 = sb3.toString();
System.out.println(str3);