反编译String的“+” 观察其实现细节
二话不说上源码:
public class StringTest{
public static void main(String[] args) {
String s1="I";
String s2=" Love";
String s3=" You";
String s4=s1+s2+s3;
System.out.println(">>>>>>>>>>"+s4);
}
}
反编译后的代码:
import java.io.PrintStream;
public class StringTest {
public static void main(String[] arrstring) {
String string = "I";
String string2 = " Love";
String string3 = " You";
String string4 = new StringBuilder().append(string).append(string2).append(string3).toString();
System.out.println(new StringBuilder().append(">>>>>>>>>>").append(string4).toString());
}
}
可以很清晰的看到,String的”+”其实就是StringBuilder append 。
发现新大陆啊。。。。。