==和equls的区别
2023-02-18 16:23:32 时间
java面试题 ==和equls的区别
==运算符
==运算符
可以使用在基本数据类型变量和引用数据类型变量中
- 如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等(类型不一定相同)
//值类型比较
int i =10;
int j =10;
double d =10.0;
System.out.println(j==d);//true
System.out.println(i==j); //true
- 如果比较的是引用数据类型变量 比较两个对象的地址值是否相同 即引用是否指向同一个实体
//引用类型比较
Customer c1 = new Customer("Tom", 21);
Customer c2 = new Customer("Tom", 21);
System.out.println(c1==c2);//false
equals方法
equals
是一个方法而非运算符 只能适用于引用数据类型 值类型想使用的话得需要使用对应的包装类
- Object类中定义的
equals
方法作用和==
相同 定义一个Customer类没有重写equals方法
public class Customer {
private String name;
private int age;
public Customer() {
}
public Customer(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
测试
Customer c1 = new Customer("Tom", 21);
Customer c2 = new Customer("Tom", 21);
System.out.println(c1==c2);//false
- string Date File 包装类都重写了Object equals方法 重写后比较的是两个对象实体内容是否相同
String s1= new String("zhaofuhao");
String s2 = new String("zhaofuhao");
System.out.println(s1==s2); //true
总结:
- 在object类中 ==和equls作用相同
- 如果子类重写了equls方法 如果地址值相同就返回true 如果地址值不同但是内容相同也返回true
- equals是一个方法而非运算符 只能适用于引用数据类型 值类型想使用的话得需要使用对应的包装类
- ==是一个运算符可以使用在基本数据类型变量和引用数据类型变量中
相关文章
- 数据结构(java版)学习笔记(四)——线性表之循环链表
- 数据结构(java版)学习笔记(三)——线性表之单链表
- 数据结构(java版)学习笔记(二)——线性表之顺序表
- 数据结构(java版)学习笔记(一)——线性表
- 数据结构(java版)学习笔记(序章)
- 抓 https 加密数据,偷偷摸摸爽得很!
- 小游戏赛道迎来新一轮增长机会,技术升级实现多平台布局
- Photoshop 2021正式版更新,附全系列下载
- Ps | Adobe Photoshop 2023 for Win 24.1 中文激活版下载及安装教程
- 简单易用的监控告警系统 | HertzBeat 在 Rainbond 上的使用分享
- 原来Docker容器中设置时区这么简单
- 小游戏进入增长快车道,行业变现模式分析
- (一)汇编语言——基础知识
- ghost系统后只有C盘了别的盘的文件怎样恢复
- (二)汇编语言——寄存器
- (三)汇编语言——DOSBox
- 分布式是大数据处理的万能药?
- SAP ABAP 报表屏幕输入字段如何实现联动效果试读版
- 如何给 SAP ABAP ALV 报表的修改功能添加自定义校验逻辑试读版
- 参加 Spartacus 开源项目开发时需要注意的一些编程规范