
获得徽章 0
- public static void main(String[] args) {
// String s1 = new String("ab");//执行完以后,会在字符串常量池中会生成"ab"
String s1 = new String("a") + new String("b");////执行完以后,不会在字符串常量池中会生成"ab"
String s = s1.intern();
String s2 = "ab";
System.out.println(s1 == s2);//true
System.out.println(s == s2);//true
}
public static void main(String[] args) {
// String s1 = new String("ab");//执行完以后,会在字符串常量池中会生成"ab"
String s1 = new String("a") + new String("b");////执行完以后,不会在字符串常量池中会生成"ab"
String s2 = "ab";
String s = s1.intern();
System.out.println(s1 == s2);//false
System.out.println(s == s2);.//true
}
有大佬知道为什么这两个代码结果不一样是为啥吗?为什么交换s和s2的声明之后就不一样了展开51