java - 有人对“==”和“.equals()”的区别有解释吗?在下面的代码中?
问题描述
有人对上面代码中的 a.equals(b) 和 a==b 有解释吗?您也可以参考该图像,该图像显示了以下代码的输出。
public class Main
{
public static void main(String[] args) {
Integer a=new Integer(10);
double b=10;
System.out.println(a==b);
System.out.println(a.equals(b));
}
}
解决方案
如果你在课堂上看到equals
方法。Integer
由于b
is 不是它instance
的Integer
返回值false
。
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
推荐阅读
- elixir - 如何在 Elixir 中获得二进制文件的长度?
- android - 如何在应用程序内获取 Firebase 云消息,而不是推送通知
- genexus - 单独工作面板
- powerbi - 拉取对应于最大值或最小值的行的最佳方法
- javascript - 注入 DOM 后如何使用 API 处理 Wistia 视频
- javascript - 猫鼬 findOneAndUpdate 为 err 和 doc 返回 null(使用 Jest)
- tfs - 如何查看我在 VSTS 项目中所做的更改?
- php - Laravel CSV 导入 - 我可以使用请求验证吗?
- intellij-idea - 使用 IntelliJ Idea 和 SonarLint 连接到 SonarQube 服务器时出现错误
- php - 一个while循环中有两个查询