String类的常量赋值后不可变更,字符串的底层实现是数组,数组的缺陷是长度固定不可变更。
但是通过“+”号实现的字符串连接并不是常量变更,而是新的堆地址指向。
String str="hello";
str=str+" world";
str+="!!!";
实际上开辟了新的堆内存空间,然后str指向的新的堆内存地址,而断开了之前的指向,之前的堆内存就成了垃圾。
String类的常量赋值后不可变更,字符串的底层实现是数组,数组的缺陷是长度固定不可变更。
但是通过“+”号实现的字符串连接并不是常量变更,而是新的堆地址指向。
String str="hello";
str=str+" world";
str+="!!!";