程序在运行的时候会创建一个字符串缓冲池
String s3 = "a" + "b";等于 String s3 = "ab"; 当拿s3和"ab"用==比较时 程序先在缓冲池里找,有就不创建了所以相等
String s3 = "a" + "b"; String s4="a" + "b"; s3==s4结果是true;
而String s2 = s1 + "b"; s1是"a"的引用 对于String s2 = s1 + "b";和String s3 = "a" + "b"; 分配的地址是不一样的 所以不相等;
==比较的是对象是否相同
equals比较的是对象的内容 如果用equals结果就都是true;
|