我知道“ ==”比较引用,并且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);给我一个错误,因为我知道两个值都应该缓存在字符串池中?
(我知道有很多类似的问题,希望有人给我评论回复,这样我就可以 稍后删除问题)预先感谢