字符串操作应该是开发中最为常见的行为。因此,适当的优化字符串操作方式是一件值得考虑的事情。
根据JDK文档的描述,String对象是不可变的。也就说每一次修改String值的操作都会创建一个全新的String对象,用以存放新生成的字符串内容。而最初的String对象则没有任何变化 看一下代码
public class Immutable {
public static String upCase(String s) {
return s.toUpperCase();
}
public static void main(String[] args) {
String str = "immutable";
System.out.println(str);
String newStr = upCase(str);
System.out.println(newStr);
System.out.println(str);
}
}
输出:
immutable
IMMUTABLE
immutable
当把字符串str传递给upCase(String s)方法时,实际传递的是str的一个拷贝。其实,每当把String对象作为参数时,都会复制一份引用,而该引用所指向的对象一直存在,并没有改变。
。。。。待续