说明:
1)常量与常量的拼接结果在常量池,且常量池中不会存在相同内容的常量
String s="javaEE"+"hadoop";
2)只要其中有一个是变量,结果就在堆中
String s2=s+"hello";
String s3="hello"+s;
String s4=s2+s3;
3)如果拼接结果调用intern()方法,返回值就在常量池中
注意:
String s1="javaEEhadoop";
String s2="javaEE";
String s3=s2+"hadoop";
System.out.println(s1==s3);//false
final String s4="javaEE";
String s5=s4+"hadoop";//现在s4就是常量而不是变量了,所以拼接结果在常量池中
System.out.println(s1==s5);//true