Java中的== 和equals()方法详解与实例

发布时间 - 2026-01-11 00:41:20    点击率:

Java中的== 和equals()方法:

Java中的数据类型,可分为两类:

1.基本数据类型,也称原始数据类型。

byte,short,char,int,long,float,double,boolean,他们之间的比较,应用双等号(==),比较的是他们的值。

2.引用数据类型(类)

当它们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。

Java当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals()的方法,这个方法的初始行为是比较对象的内存地址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址。

对于引用数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。

Object中的equals()方法

publicbooleanequals(Objectobj){
return(this==obj);
}
举个实例:
packageorg.java.test;
publicclassPerson{
privateintage;
privateStringname; 
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicPerson(intage,Stringname){
this.age=age;
this.name=name;
}
publicPerson(){
}
@Override
publicinthashCode(){
finalintprime=31;
intresult=1;
result=prime*result+age;
result=prime*result+((name==null)?0:name.hashCode());
returnresult;
}
@Override
publicbooleanequals(Objectobj){
if(this==obj)
returntrue;
if(obj==null)
returnfalse;
if(getClass()!=obj.getClass())
returnfalse;
Personother=(Person)obj;
if(age!=other.age)
returnfalse;
if(name==null){
if(other.name!=null)
returnfalse;
}elseif(!name.equals(other.name))
returnfalse;
returntrue;
} 
}
MainTest.java[java]view plaincopyprint?
packageorg.java.test;
publicclassMainTest{
publicstaticvoidmain(String[]args){
Personp1=newPerson(99,"A");
Personp2=newPerson(99,"A");
Personp3=p1;
System.out.println(p1==p2);//false
System.out.println(p1==p3);//true
System.out.println(p1.equals(p2));
//未重写equals()方法,返回false
//重写equals()方法后,比较的是内容,返回true; 
System.out.println("<====================>");
Strings1="hello";
Strings2="hello";
Strings3=newString("hello");
System.out.println(s1==s2);//true
System.out.println(s1==s3);//false
System.out.println(s1.equals(s2));//true
System.out.println(s1.equals(s3));//true
}
}

希望本文对各位朋友有所帮助


# Java  # ==  # 和equals()方法  # equals()方法  # Java equals()方法使用详解及总结  # Java中==符号与equals()的使用详解(测试两个变量是否相等)  # 详解Java中==和equals()的区别  # Java中==和equals()的区别总结  # Java中equals()方法实例详解  # Java中equals()方法重写实现代码  # 详解Java中“==”与equals()的区别  # 详解java==运算符和equals()方法的区别  # Java自定义实现equals()方法过程解析  # Java中equals()方法的理解与使用方法例子  # 的是  # 他们的  # 重写  # 他们之间  # 都是  # 但在  # 掉了  # 在这些  # 可分为  # 两类  # 举个  # 也称  # 类中  # 类库  # 情况下  # publicintgetAge  # class  # br  # Objectobj  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JS中页面与页面之间超链接跳转中文乱码问题的解决办法  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  油猴 教程,油猴搜脚本为什么会网页无法显示?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  浅述节点的创建及常见功能的实现  佛山企业网站制作公司有哪些,沟通100网上服务官网?  如何挑选最适合建站的高性能VPS主机?  Laravel如何实现事件和监听器?(Event & Listener实战)  香港服务器选型指南:免备案配置与高效建站方案解析  浅析上传头像示例及其注意事项  如何在阿里云ECS服务器部署织梦CMS网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  PythonWeb开发入门教程_Flask快速构建Web应用  如何在云主机快速搭建网站站点?  如何快速搭建二级域名独立网站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  长沙做网站要多少钱,长沙国安网络怎么样?  大连网站制作公司哪家好一点,大连买房网站哪个好?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel中的Facade(门面)到底是什么原理  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  网站制作软件有哪些,制图软件有哪些?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  什么是javascript作用域_全局和局部作用域有什么区别?  php485函数参数是什么意思_php485各参数详细说明【介绍】  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  JavaScript数据类型有哪些_如何准确判断一个变量的类型  如何用PHP快速搭建CMS系统?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何在云虚拟主机上快速搭建个人网站?  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Android GridView 滑动条设置一直显示状态(推荐)  详解jQuery中的事件  如何在Tomcat中配置并部署网站项目?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  如何用西部建站助手快速创建专业网站?  详解Android——蓝牙技术 带你实现终端间数据传输  Android仿QQ列表左滑删除操作  Python正则表达式进阶教程_复杂匹配与分组替换解析  高防服务器租用如何选择配置与防御等级?  怎么用AI帮你为初创公司进行市场定位分析?  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  ,南京靠谱的征婚网站?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  lovemo网页版地址 lovemo官网手机登录  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】