1. String
1.1不变性
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];
从上述String的源码中,可以看出如下两点:
- String类被final修饰,String类不能再被继承,也即对String 的操作方法,不会再被继承重写;
- String的底层实现是通过char类型的字符数组value而实现,value同时也被final修饰,也即在赋值后无法修改;且访问权限是private,外部无法访问,而String本身也无修改的方法,所以value赋值后,内存地址无法修改;
因为String 的不变性所以String 的大多数操作方法都会返回新的String,如:
String aString = "123aaaaabbb";
aString.replace("3", "b");
System.out.println(aString); // 输出 "123aaaaabbb"
String repStr =aString.replace("3", "b");
System.out.println(</