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小时内与您取得联系。