1.Java 会确保一个字符串常量只有一个拷贝
2.用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间
3.编译器可以在编译期间确定的,如常量或者final修饰的,则在编译器优化确定
String s1="abc";
String s2="abc";
String s3="a"+"bc" //注意,编译器会优化成:String s3="abc";
String s4=new String("abc");
String s5="a"; ???
String s6="bc";
String s7=s5+"bc";
String s8=s5+s6;
String s9=String.valueOf("abc")
String s10=String.valueOf(s1);
String s11=new String(s1); ???
String s12=s4.inter();