基本數(shù)據(jù)類型的學(xué)習(xí)
7.17添加了String的不可變性
String的不可變性
private final char value[];
String的源代碼中,用來保存值的value實(shí)際上是被private和final修飾的字符數(shù)組的引用,而final對(duì)引用的限制則是,不可改變引用的地址,但可改變引用所指向的數(shù)組內(nèi)的數(shù)據(jù)。
final char[] c = {'a', 'b', 'c', 'd', 'e'};
c[2] = 'b';
System.out.println(c);
-------------------------------------------------------
輸出:
abbde
由上面的例子可以知道String的不可變性并不是由final實(shí)現(xiàn)的。在此,個(gè)人理解是,private對(duì)該引用的訪問控制加上并未提供方法直接訪問該引用的方法促成了String的不可變性。