java的字符串为什么不可变
字符串的内存展示
String a = “500asd” ;
String b = “500asd” ;
String c = new String(“500asd” );
String D = new String(“500asd” );
赋值之后a==b,a!=c!=D,b!=c!=D
String c = new String(“500asd” );
String D = new String(“500asd” );这两句赋值里有一个new,这个赋值叫深赋值,深赋值后在堆里开辟了一个新的地址,所以a不等于c和D,他们的地址不一样,但是数值还是相等的。
字符串的实质是数组,数组在内存上是连续存储的,