1. String对项内容是不可改变的,StringBuffer是可以改变的,别且高效;
2. String
String a = "123";
a = a + "456";
上面两句,虽然a的值最终改变了,但是实际上在编译的时候,第一句a是一个对象,被分配了一个地址,第二句执行时,原来的a被释放,然后重新分配。
a 原本指向一 String object instance ("123"), a + "456" 會造出另一新的 String object instance ("123456"), 然後 a 再指向這新的 String instance.
3. StringBuffer
StringBuffer b = new StringBuffer("asd");
b.append("fgh");
在这个过程中,只存在b这么一个对象,b 一直都指向一個 StringBuffer instance. append 也只是改變此 instance 的內容而已.