为什么if else判断的时候str判断不出来?

为什么if else判断的时候str判断不出来,直接跳过了,求解释

img

== “运算符” 比较【堆中对象】的引用或内存位置,无论它们是否指向相同的位置。
每当我们使用运算符 new 创建对象时,它都会为该对象创建 一个新的内存 位置。

所以我们使用 == “运算符” 来检查两个对象的内存位置或地址是否相同。

我们可以使用 == “运算符” 进行引用比较(地址比较);
使用 .equals() 方法进行【内容比较】。
简单来说:
== 检查两个对象是否指向【相同的内存位置】,而 .equals() 计算对象中【值的比较】。

我来回答一下题主的问题。

Java的字符串是引用类型,不是基本类型。判断字符串相等应该使用.equals(),而不是==,具体区别可以参考这篇文章:https://blog.csdn.net/qq_41638851/article/details/103210452

Java7以上版本,可以使用switch...case...直接判断字符串,其实也是equals()

采用"fire".equals(str)str.equals("fire")更好,理由是:str有可能是空的,易引发空指针异常,"fire".equals(str)不会引发空指针异常。

如果我的回答对题主有帮助,还望题主可以采纳!