电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

如何區分JAVA中的equals與==

瀏覽:53日期:2022-08-31 16:47:16

java中的數據類型,可分為兩類:

1.基本數據類型,也稱原始數據類型。

byte,short,char,int,long,float,double,boolean 他們之間的比較,應用雙等號(==),比較的是他們的值。

基本數據類型比較 == 和 Equals 兩者都是比較值;equals()與==都是java中用于進行比較的,返回boolean值,不同的是equals()是Object類中定義的一個方法,==是一個比較運算符。下面是equals()在Object中的源碼:

public boolean equals(Object obj) { return (this == obj); }

我們驚奇的發現這方法和==不是一模一樣嗎??

下面再來看看String類中equals()方法的源碼:

public boolean equals(Object anObject){ //先進行地址值的判斷,如果想等直接返回true if (this == anObject) { return true; } //如果地址不相等,判斷傳進來的對象是不是String類型的一個實例 if (anObject instanceof String) { //發現是string類型的實例,將它強轉為string類型(強轉之后就可以調用string的方法了) String anotherString = (String) anObject; //value是string內部的一個char數組,每個string對象都對應一個char數組,得到長度 int n = value.length; //先進行長度的比較,如果相同才能進行下一步 if (n == anotherString.value.length) { //發現長度相同,將string對應的char數組中的字符一個一個進行比較 char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }

顯然String對equals()方法進行了重寫,使得它具有比較String內容是否相等的功能,此時的equals()就不在是僅僅比較對象地址了,

如果地址不相同,他會比較對象內容是否相同,如果相同會返回true。

2.復合數據類型(類)

當他們用(==)進行比較的時候,比較的是他們在內存中的存放地址,所以,除非是同一個new出來的對象,他們的比較后的結果為true,否則比較后結果為false。

有如下代碼

public class TestString { public static void main(String[] args) { String s1 = 'Monday'; String s2 = 'Monday'; if (s1 == s2) { System.out.println('s1 == s2');} else{System.out.println('s1 != s2');} } }

編譯并運行程序,輸出:

s1 == s2

說明:s1 與 s2 引用同一個 String 對象 -- 'Monday'!

改動下程序

public class TestString {public static void main(String[] args) {String s1 = 'Monday';String s2 = new String('Monday');if (s1 == s2){System.out.println('s1 == s2');}else{System.out.println('s1 != s2');}if (s1.equals(s2)) {System.out.println('s1 equals s2');}else{System.out.println('s1 not equals s2');}}}

我們將s2用new操作符創建程序輸出:

s1 != s2s1 equals s2

說明:s1 s2分別引用了兩個'Monday'String對象

總結如下:

equals()和==都是用于比較運算。

equals()是Object類中的一個方法,用于比較對象是否相等,在Object類中,它的含義和==相同,比較的都是對象的地址,但有時我們要比較對象的內容,此時要重寫equals方法,例如String類就默認重寫了equals方法比較對象的內容。

==是一個比較運算符,當它兩邊是基本數據類型時,就是直接比較兩個數據的值,當兩邊是對象時,比較的是對象的地址。

以上就是如何區分JAVA中的equals與==的詳細內容,更多關于JAVA中的equals與==的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 铝镁锰板_铝镁锰合金板_铝镁锰板厂家_铝镁锰金属屋面板_安徽建科 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 日本东丽膜_反渗透膜_RO膜价格_超滤膜_纳滤膜-北京东丽阳光官网 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 医养体检包_公卫随访箱_慢病随访包_家签随访包_随访一体机-济南易享医疗科技有限公司 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 罗茨真空机组,立式无油往复真空泵,2BV水环真空泵-力侨真空科技 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | HDPE储罐_厂家-山东九州阿丽贝防腐设备 | 有福网(yofus.com)洗照片冲印,毕业聚会纪念册相册制作个性DIY平台 | 圆周直径尺-小孔内视镜-纤维研磨刷-东莞市高腾达精密工具 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 模切之家-专注服务模切行业的B2B平台! | IIS7站长之家-站长工具-爱网站请使用IIS7站长综合查询工具,中国站长【WWW.IIS7.COM】 | 北京网站建设|北京网站开发|北京网站设计|高端做网站公司 | 北京网站建设|北京网站开发|北京网站设计|高端做网站公司 | 热处理温控箱,热处理控制箱厂家-吴江市兴达电热设备厂 | 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 盘装氧量分析仪-防爆壁挂氧化锆分析仪-安徽吉帆仪表有限公司 | 学生作文网_中小学生作文大全与写作指导 | 高压包-点火器-高压发生器-点火变压器-江苏天网 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 真空包装机-诸城市坤泰食品机械有限公司|