== 和 equal()的区别
==和equals()的区别
==: 运算符
1.可以使用在基本数据类型变量和引用数据类型变量中
2.如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等(不一定类型要相同)
int i=10;
int j=10;
double d=10.0;
System.out.println(i==j); //true
System.out.println(i==d); //true
char c=10;
System.out.println(i==c); //true
char c1='A';
char c2=65;
System.out.println(c1==c2); //true
3.如果比较的是引用数据类型变量: 比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体
Customer cust1=new Customer("Tom",21);
Customer cust2=new Customer("Tom",21);
System.out.println(cust1==cust2); //false
String str=new String("com");
String str2=new String("com");
System.out.println(str==str2); //false
equals()
1.是一个方法,而非运算符
2.只适用于引用数据类型
3.Object类中equals()定义:
public boolean equals(Object obj){
return (this==obj);
}
说明:Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体
Customer cust1=new Customer("Tom",21);
Customer cust2=new Customer("Tom",21);
System.out.println(cust1.equals(cust2)); //false
注意:
像String,Date,File,包装类等重写了Object类中的Equlas()方法,重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的"实体内容"是否相同
Date date1=new Date(32432525324L);
Date date2=new Date(32432525324L);
System.out.println(date1.equals(date2)); //true
String str=new String("com");
String str2=new String("com");
System.out.println(str.equals(str2)); //true
引用常量:String
String t1="com"; //常量 存放的常量区中,常量区没有重复的值
String t2="com"; // t1 t2指向的引用地址相同
System.out.println(t1==t2); //true
System.out.println(t1.equals(t2)); //true
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了