String s1 = “abc”;
String s2 = new String(“abc”);
System.out.println(s1==s2);
String s3 = “你好吗”;
String s4 =”你”;
String s5 =”好吗”;
System.out.println(s3==(s4+s5))
我的思路:s3 先在常量池给“你好吗”字符串开辟空间 0x0001,s4 判断常量池有没有“你”字符串,结果没有,在常量池开辟新空间给“你”,0x0002,s5和s4一样的道理,又在常量池开辟了新空间0x0003,s4和s5拼接成“你好吗”,结果常量池有“你好吗”字符串,
然后指向了 0x0001,s3==(s4+s5) 比较地址值,结果为true
哪里有什么不对的吗?求大神指点,转不过来弯了已经 |
|