String s2="gamelost";
String s3="gamelost";
String str=game+lost;
s2==s3为true那么s2==str为什么是false呢?
常量池中已经有gamelost 这个常量了啊?
输出都是true啊,上机验证过没?
是String str= "game"+"lost";吧?
Java的String类具有不可变性,你可以看下API,是final类,并且没有提供任何改变值和长度的方法
进行连接字符串操作的时候,Java虚拟机没有改变其中任何一个字符串,而是创建了一个新的String对象,把连接后的结果赋给他。
所以并不是楼主理解的"game" + "lost"直接等价于"gamelost"
s2和s3确实相等,应为常量池中已经存在了"gamelost"