hunter

java 中的字符串的加算法

String a = "a";
String b = "b";
String c = a + b;

相当于:

String c = new StringBuffer().append(a).append(b).toString();

对于字符串的加运算,当编译成 class 文件时,会自动编译为 StringBuffer 来进行字符串的连接操作。

同时对于字符串常量池:

当一个字符串是一个字面量时,它会被放到一个常量池中,等待复用。

String a = "saff";
String b = "saff";
String c = new String("saff");
System.out.println(a.equal(b));  // true
System.out.println(a.equal(c));  // true

这个就是字符串的常量池。