java - equals() 方法和对象比较
问题描述
我正在学习java的基础知识并看到equals()方法并编写了这段代码
public class EqualsTest {
public static void main(String[] args) {
String str = new String("this");
String str2 = new String("this");
Object obj1 = new Object(6);
Object obj2 = new Object(6);
System.out.println(str == str2);
System.out.println(str.equals(str2));
System.out.println(obj1 == obj2);
System.out.println(obj1.equals(obj2));
}
}
和这个。
public class Object {
public int num;
public Object(int num) {
this.num = num;
}
}
当我运行代码时,我得到的结果是
false
true
false
false
我可以理解为什么我得到前两个结果。(假和真)'==' 运算符比较 str 和 str2 是否引用同一个实例,而 equals() 方法比较内部的实际值。
但是我不明白为什么我两个都错了
obj1 == obj2;
obj1.equals(obj2);
我想既然他们都有价值6,
obj1.equals(obj2);
结果,这条线应该给出真实的结果。
有人可以解释一下吗?
谢谢你。
解决方案
推荐阅读
- html - 使用网格时的响应式布局
- python - 将 `lbound:ubound` 索引符号存储在变量 pandas 中
- javascript - 将 Buy Me A Coffee 小部件添加到 React 应用程序
- php - 如何检查标点符号是否存在于给定数量的字符中以及是否确实剪切了那里的文本-PHP?
- postgresql - 如何在 Google Cloud SQL PostgreSQL 11 实例上记录 SQL 查询?
- django - Django列出包含某些相同项目的类别中的项目
- snowflake-cloud-data-platform - 无法通过 DBEAVER 连接到雪花超时
- python - 增加函数中的值
- python - 使用 Python 脚本的 UC4 ONE 自动化作业
- python - 训练测试拆分 Fastai