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函数问题解决【解答】

