Java 语言中,不管新菜鸟,仍是老司机,真正了解String内存的不多。关于String 的试题,花样不少。== 在什么状况下是true,什么状况是false。我总结出以下3点让你完全结束对String的模糊感。不管怎么变化,都离不开如下3种类型:app
一、常量池存取(同一引用):ui
String str="a"; 或 String str="a"+"b";(编译后:"ab")spa
二、堆内存构建(新对象):对象
String str=new String("1");内存
三、引用拼接(相似于StringBuild 的 append,每次拼接都产生新的对象):编译
String str1="a";引用
String str2="b";总结
String str3=new String("c");语言
String str4=new String("c");co
String strs1=str1+str2; 或 str1+="a"; 或 String strs2=str1+str3; 或 String strs5=str3+str4 .......