首先String是不可变的关键都在底层的实现,而不是一个final。假如有这么一段代码
public static void main(String[] args) { String a, b, c; a = "test"; b = a; c = b; String processA = processA(a); String processB = processB(b); String processC = processC(c); System.out.println(processA); System.out.println(processB); System.out.println(processC); } static String processA(String str){ return str + "A"; } static String processB(String str){ return str + "B"; } static String processC(String str){ return str + "C"; }
我们本意是想分别输出testA,testB,testC.试想一下String是可变的。那结果可能是testA,testAB,testABC .这也是一种保护。
有道理,还有其他方面的保护么