gpt4 book ai didi

java - ==、equals() 和 instanceof() 之间的区别

转载 作者:行者123 更新时间:2023-12-01 07:15:35 24 4
gpt4 key购买 nike

String s=new String("Computer");
if(s=="Computer")
System.out.print("equals A");
if(s.equals("Computer"))
System.out.print("Equal B");

输出等于B

现在为什么==不会产生等于A

什么是instanceof

最佳答案

== 是引用等于,例如“这个对象与其他对象是完全相同的对象吗?”。

当您创建 s 时,您创建了一个新对象,因此它也不会与您要比较的字符串相同的对象(取决于您使用的 JVM "foo"== "foo" 将为 true,因为它将在内部使用相同的对象)。

当你调用.equals()时,它(字符串s)运行它自己的逻辑来确定它是同一个对象。对于字符串,它将逐个字符进行比较。

instanceof 完全是另一回事,它会告诉你一个对象是否是某种类型对象的实例,例如“foo”instanceof String 为 true。

关于java - ==、equals() 和 instanceof() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3912278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com