public class Test2
{
public static void main(String[] args)
{
//常量池里的数据 编译时就确定下来了
String s1 = "疯狂java";
String s2 = "疯狂";
String s3 = "java";
String s4 = "疯狂" + "java";
String s5 = "疯" + "狂" + "java";   //常量池里的字符串
String s6 = s2 + s3;  // 不能在编译期间确定下来,不能引用常量池中的字符串。
String s7 = new String("疯狂java");//new了一个新对象。
System.out.println(s1 == s4);   //true
System.out.println(s1 == s5);   //true
System.out.println(s1 == s6);   //flase
System.out.println(s1 == s7);   //flase
}
}
不明白 String s6 = s2 + s3 为什么不能在编译期间确定下来。就算不能确定下来,那么运行期间还是用的常量池啊。
所以倒数第二行 求解释。菜鸟献丑了