- String s1 = "abcd";
- String s2 = "abcd";
- String s3 = "ab" + "cd";
- String s4 = new String("abcd");
- System.out.println(s1 == s2);//true,因为abcd存在常量池中
- System.out.println(s1 == s3);//true,因为abcd存在常量池中
- System.out.println(s1 == s4);//false,new出来的是一个对象,不存在常量池中
复制代码 String s1="a"+"b"+"c"+"d";
这里是一个对象s1, 字符串abcd在常量池中
String s2 = new String("abcd");这里是两个对象:s2, 字符串abcd, new出来的字符串不在常量池中.
我是这样理解的,希望能帮到你 |