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
相关文章:
外贸公司网站制作,外贸网站建设一般有哪些步骤?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
北京网站制作的公司有哪些,北京白云观官方网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何撰写建站申请书?关键要点有哪些?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
建站之星会员如何解锁更多建站功能?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
宿州网站制作公司兴策,安徽省低保查询网站?
如何通过FTP空间快速搭建安全高效网站?
如何使用Golang安装API文档生成工具_快速生成接口文档
建站中国官网:模板定制+SEO优化+建站流程一站式指南
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
设计网站制作公司有哪些,制作网页教程?
专业公司网站制作公司,用什么语言做企业网站比较好?
如何快速搭建高效香港服务器网站?
已有域名和空间,如何快速搭建网站?
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何在云服务器上快速搭建个人网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
建站之星后台密码遗忘或太弱?如何重置与强化?
如何制作算命网站,怎么注册算命网站?
网站app免费制作软件,能免费看各大网站视频的手机app?
如何快速搭建FTP站点实现文件共享?
如何基于PHP生成高效IDC网络公司建站源码?
jQuery 常见小例汇总
贸易公司网站制作流程,出口贸易网站设计怎么做?
定制建站是什么?如何实现个性化需求?
建站之星备案是否影响网站上线时间?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
营销式网站制作方案,销售哪个网站招聘效果最好?
如何高效搭建专业期货交易平台网站?
建站之星展会模板:智能建站与自助搭建高效解决方案
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
网站制作模板下载什么软件,ppt模板免费下载网站?
如何设置并定期更换建站之星安全管理员密码?
建站主机如何选?高性价比方案全解析
小型网站建站如何选择虚拟主机?
如何通过VPS建站实现广告与增值服务盈利?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
建站之星2.7模板快速切换与批量管理功能操作指南
内部网站制作流程,如何建立公司内部网站?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
Python如何创建带属性的XML节点
实例解析Array和String方法
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
*请认真填写需求信息,我们会在24小时内与您取得联系。