全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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 


相关文章: 建站之星导航如何优化提升用户体验?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  企业微网站怎么做,公司网站和公众号有什么区别?  如何用5美元大硬盘VPS安全高效搭建个人网站?  内网网站制作软件,内网的网站如何发布到外网?  专业商城网站制作公司有哪些,pi商城官网是哪个?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  ,巨量百应是干嘛的?  建站之星备案是否影响网站上线时间?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  如何通过智能用户系统一键生成高效建站方案?  在线制作视频的网站有哪些,电脑如何制作视频短片?  网站app免费制作软件,能免费看各大网站视频的手机app?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  如何高效生成建站之星成品网站源码?  seo网站制作优化,网站SEO优化步骤有哪些?  建站三合一如何选?哪家性价比更高?  如何获取PHP WAP自助建站系统源码?  如何有效防御Web建站篡改攻击?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  实例解析angularjs的filter过滤器  如何在云主机上快速搭建多站点网站?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  高性能网站服务器部署指南:稳定运行与安全配置优化方案  建站之星代理平台如何选择最佳方案?  如何生成腾讯云建站专用兑换码?  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何快速打造个性化非模板自助建站?  Android滚轮选择时间控件使用详解  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  一键网站制作软件,义乌购一件代发流程?  建站之星展会模板:智能建站与自助搭建高效解决方案  如何快速搭建高效可靠的建站解决方案?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何在Tomcat中配置并部署网站项目?  C#如何序列化对象为XML XmlSerializer用法  建站VPS选购需注意哪些关键参数?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何确保FTP站点访问权限与数据传输安全?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  存储型VPS适合搭建中小型网站吗?  安徽网站建设与外贸建站服务专业定制方案  浅析上传头像示例及其注意事项  制作网页的网站有哪些,电脑上怎么做网页?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  如何快速搭建FTP站点实现文件共享?  建站之星安装后如何配置SEO及设计样式?  php json中文编码为null的解决办法  建站与域名管理如何高效结合? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。