为什么我想要打印的内容被吃了和关于==问题

我在判断之前还加了段字符串,为什么不会被打印出来,求解

img


为什么我更改判断为s1==s1,结果显示仍然为false,求解

img

我这边竟然图裂了

你的代码和控制台打印结果执行的代码不一致,截个一致的图吧,要不没法给你分析

==在复合数据类型(类)中比较的是地址值,在基本数据类型中比较的是内容是否相等,string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 equals 这两者比较的都是字符串是否相同;所以s1==s3结果为true,而对于你出现双引号的内容未被打印出来,是因为运算优先级的问题,首先是双引号里面的内容也是字符串,首先和s1进行了字符串拼接,再进行==判断是否相等,所以结果为false,你可以用下面那种试一下,会解决问题。

System.out.println("a result is"+(s1==s2));