为什么最后一行的输出是true (java问题)

2025-05-14 12:43:30
推荐回答(1个)
回答1:

String类的equals方法是比较两个字符串的内容是否相同;

而==是判断两个字符串变量是否具有相同的对象引用,即是否指向同一个内存对象

所以,第一个输出是false,第二个是ture。

最后一个是true是因为s3和s4是通过字符串常量的方式来赋值的(不同于new的方式),因为常量是不变的,所以重用一个内存对象,这其实是java的优化机制。