每当把String对象做为方法的参数时,都会复制一份引用。而该引用所指的对象其实一直待在单一的物理位置上,从未动过。app
String对象是不可变的,你能够给一个String 对象加任意多的别名,由于String对象具备只读特性,因此指向它的任何引用都不可能改变它的值,所以也就不会对其余引用有什么影响ui
String + String 是JAVA中惟一的操做符重载,其内部也是用StringBuilder来完成的,可是若是遇到复杂的字符串拼接,诸如循环:仍是用StringBuilder来完成效率高。+号的方式内部每次循环都会建立一个StringBuilder。 另外使用StringBuilder的 append()方法,千万不要用以下写法例如:append(a+":"+c)这就会掉入陷阱,底层实现就会屡次建立StringBuilderspa