s3在创建对象引用的时候,会去常量池查找是否存在字符串”ABCDEF”,然后它发现并不存在,所以它会将s3这个对象在堆中的引用地址存储一个到常量池中(jdk 7以及之后的版本);所以现在常量池中存储的地址就是堆中s3的地址,然后你创建s4,s4是两个衣服串常量想加,同样回去常量池中寻找地址,发现已经存在了,就把那个地址返回给s4。所以s3和s4就相等了,然后下面的3个操作因为都是新生成了对象,也就是在比较两个不同的对象,他们的内存地址是不会相同的
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务