在这种情况下比较字符串会混淆结果

时间:2019-12-29 13:54:17

标签: java

我知道“ ==”比较引用,并且java字符串是不可变的,并且使用字符串池缓存,但是我仍然对该示例感到困惑:

 final String fName = "James";
        String lName = "Gosling";
        String name1 = fName + lName;
        String name2 = fName + "Gosling";
        String name3 = "James" + "Gosling";
       System.out.println(name1 == name2);  // 1
        System.out.println(name2 == name3);

这给了我结果:

false
true

我仍然困惑为什么System.out.println(name1 == name2);给我一个错误,因为我知道两个值都应该缓存在字符串池中?

(我知道有很多类似的问题,希望有人给我评论回复,这样我就可以 稍后删除问题)预先感谢

0 个答案:

没有答案