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