JAVA中即使输入了'dog', s1==s2的结果也是false。为什么?

img


即使输入了'dog', s1==s2的结果也是false。为什么?

因为对于引用类型,==比较的是地址,s1的地址和s2的地址不一样所以是false,你可以使用String重写过的equals方法

s1.equals(s2)

比较
这个方法比较的是字符串的内容也就是值而不是地址了

==除了基本数据类型外,其他的都是比较地址值。字符串比较要用equals方法进行比较

涉及到址比较 和 值比较。==在这里使用是比较两个变量s1,s2的地址值。所以是false。可以用s1.equals(s2)返回的就是比较s1和s2的值了 true

scanner.nextLine()的底层重新new 一个String 对象 ,所以两个String 对象 == 会是 false