Java之字符串
1、不变的String
String对象是不可以改变的。String类中每一个看起来会修改String值得方法,实际都是在创建一个全新的String对象,已包含修改后的字符串内容。而最初的String对象则丝毫未变。
public class Immutable { public static String upcase(String s){ return s.toUpperCase(); } public static void main(String[] args) { String q="howdy"; System.out.println(q); String qq=upcase(q); System.out.println(qq); System.out.println(q); q.toUpperCase(); System.out.println(q); } }
注意:upcase()返回的引用已经指向一个新的对象,而原本q则还在原地。
2、“+“”与StringBuilder
Java中对String总的“+”、“+=”进行了重载(唯一两个)运算符。
在运用“+”时,编译器创建了一个StringBuilder对象,用以构造最终的String,并且为每个字符串调用一次调用一次StringBuilder的append()方法,最后调用toString()生成结果,并存入s中。