Java ==和equals的区别
2024-09-05 10:20:21
首先了解默认equals方法实现代码
public boolean equals(Object obj) {
return (this == obj);
}
1.==
(1)对于基本数据类型的变量,"=="的作用是判断左右两边的值是否相等
public class HelloWorld {
public int HW=10;
public static void main(String[] args)
{
int a=10;
int b=10;
System.out.println(a==b); //ture
}
}
(2)对于引用类型的变量,"=="的作用是判断左右两边所指向的地址是否一样
public class HelloWorld {
public int HW=10;
public static void main(String[] args)
{
HelloWorld a=new HelloWorld();
HelloWorld b=new HelloWorld();
System.out.println(a==b); //false
}
}
2.equals()
(1)根据equals()的实现代码可知equals()不适用于基本数据类型之间,对于引用类型的变量则和"=="结果相同
public class HelloWorld {
public int HW=10;
public static void main(String[] args)
{
HelloWorld a=new HelloWorld();
HelloWorld b=new HelloWorld();
System.out.println(a.equals(b)); //false
}
}
(2)如果对equals()方法进行了重写,那么就是对比值是否相等。
public class HelloWorld {
public int HW=10;
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
HelloWorld other = (HelloWorld) obj;
if (HW != other.HW)
return false;
return true;
}
public static void main(String[] args)
{
HelloWorld a=new HelloWorld();
HelloWorld b=new HelloWorld();
System.out.println(a.equals(b)); //true
}
}
ps: 我使用的是eclipse提供的重写。
最新文章
- POJ3749 破译密码
- ligerui_ligerTree_002_利用JavaScript代码配置ligerTree节点
- jQuery Ajax 全解析(转)
- 【笨嘴拙舌WINDOWS】窗体样式
- gulp browser-sync自动刷新插件
- [GRYZ]寒假模拟赛
- nodejs-fs使用
- jQuery分析(3) - jQuery.fn.init
- cheese desktop内容
- Node.js中读取文件后用Json.parse方法报错
- 最基本的SQL语法/语句
- iOS MVVM 前世今生
- mysql批量插入语句执行失败的话,是部分失败还是全部失败
- DBUtils架构分析
- springMVC报404,没有显示地址
- Conclusions about Deep Learning with Python
- JAVA 第四周学习总结
- 使用cgroup进行系统资源使用限制
- django+mysql安装和设置
- node中__dirname、__filename、process.cwd()表示的路径