String
String str = "a";
str+="b";
看似两行的程序,其实运行的时候还是很复杂的,
首先JVM创建一个值为"a"的String类对象,然后”str”指向这个对象,当我们进行
+=操作时,会从新创建一个String对象,此时这个而对象的值为”a”+”b”也就
是”ab”,然后改变str的指向,改为指向”ab”这个对象。
注意: 如果是String str = “a”+“b”;,就相当于直接创建一个值为”ab”的String类,将”str”指向这个对象。
StringBuffer
Stringbuffer strb = “a”;
strb.append(“b”);
不会在JVM中继续创建新的对象,而是直接改变自身对象的值。