日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java基础之 “==”和“ equals”以及instanceof的区别

發(fā)布時(shí)間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础之 “==”和“ equals”以及instanceof的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1)對(duì)于字符串變量來(lái)說(shuō),使用“==”和“equals()”方法比較字符串時(shí),其比較方法不同。

“==”比較兩個(gè)變量本身的值,即兩個(gè)對(duì)象在內(nèi)存中的首地址。“equals()”比較字符串中所包含的內(nèi)容是否相同。

比如:

String s1,s2,s3 = "abc", s4 ="abc" ;s1 = new String("abc");s2 = new String("abc");

那么:

s1==s2 是 false //兩個(gè)變量的內(nèi)存地址不一樣,也就是說(shuō)它們指向的對(duì)象不 一樣,故不相等。

s1.equals(s2) 是 true //兩個(gè)變量的所包含的內(nèi)容是abc,故相等。

注意(1):

如果:

StringBuffer s1 = new StringBuffer("a");StringBuffer s2 = new StringBuffer("a");

結(jié)果: s1.equals(s2) //是false

解釋:
StringBuffer類中沒(méi)有重新定義equals這個(gè)方法,因此這個(gè)方法就來(lái)自O(shè)bject類, 而Object類中的equals方法是用來(lái)比較“地址”的,所以等于false.

注意(2):

對(duì)于s3和s4來(lái)說(shuō),有一點(diǎn)不一樣要引起注意,由于s3和s4是兩個(gè)字符
串常量所生成的變量,其中所存放的內(nèi)存地址是相等的,所以s3==s4是true(即使沒(méi)有s3=s4這樣一個(gè)賦值語(yǔ)句)

(2)對(duì)于非字符串變量來(lái)說(shuō):
"=="和"equals"方法的作用是相同的都是用來(lái)比較其對(duì)象在堆內(nèi)存的首地址,即用來(lái)比較兩個(gè)引用變量是否指向同一個(gè)對(duì)象。

比如:

class A{A obj1 = new A();A obj2 = new A();}那么:obj1==obj2是falseobj1.equals(obj2)是false但是如加上這樣一句:obj1=obj2;那么 obj1==obj2 是trueobj1.equals(obj2) 是true

總之:
equals方法對(duì)于字符串來(lái)說(shuō)是比較內(nèi)容的,而對(duì)于非字符串來(lái)說(shuō)是比較其指向的對(duì)象是否相同的。
== 比較符也是比較指向的對(duì)象是否相同的也就是對(duì)象在對(duì)內(nèi)存中的的首地址。

String類中重新定義了equals這個(gè)方法,而且比較的是值,而不是地址。所以是true。

順便總結(jié)下equals方法和instanceof 的區(qū)別:

instanceof操作符用于判斷一個(gè)引用類型所引用的對(duì)象是否是一個(gè)類的實(shí)例,對(duì)于引用類型變量,Java 編譯器只根據(jù)變量被先生聲明的類去編譯。 instanceof 左邊操作元被顯式聲明的類型與右邊操作元必須是同種類或者有繼承關(guān)系,即位于繼承樹(shù)的同一個(gè)繼承分支上,否則編譯出錯(cuò)

Object 類的 equals() 方法的比較規(guī)則為:當(dāng)參數(shù) obj 引用的對(duì)象與當(dāng)前對(duì)象為同一個(gè)對(duì)象時(shí),就返回true,否則返回false

在JDK中有一些類覆蓋了 Object 類的equals()方法,它們的比較規(guī)則為

如果兩個(gè)對(duì)象的類型一致,并且內(nèi)容一致,則返回true。
這些類包括:java.io.File、java.util.Date、java.lang.String、包裝類(如java.lang.Integer和java.lang.Double類)。
如果是自己定義的類的話,可以復(fù)寫equals()方法,自己定義比較規(guī)則

Java語(yǔ)言對(duì)equals()的要求如下,這些要求是必須遵循的,以下幾點(diǎn)也算是和instance of 的區(qū)別:

? 對(duì)稱性:如果x.equals(y)返回是“true”,那么y.equals(x)也應(yīng)該返回是“true”。 ? 反射性:x.equals(x)必須返回是“true”。 ? 類推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也應(yīng)該返回是“true”。 ? 還有一致性:如果x.equals(y)返回是“true”,只要x和y內(nèi)容一直不變,不管你重復(fù)x.equals(y)多少次,返回都是“true”。 ? 任何情況下,x.equals(null),永遠(yuǎn)返回是“false”;x.equals(和x不同類型的對(duì)象)永遠(yuǎn)返回是“false”。

轉(zhuǎn)自:http://blog.csdn.net/t12x3456/article/details/7341515

總結(jié)

以上是生活随笔為你收集整理的java基础之 “==”和“ equals”以及instanceof的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黑人黄色录像 | 日韩精品成人在线 | 日韩在线观看免费网站 | 男女操网站 | 女女调教被c哭捆绑喷水百合 | 伊人婷婷色 | 桃谷绘里香在线播放 | 亚洲激情视频 | 黄色a级在线观看 | 国产美女无遮挡免费视频 | 女生裸体无遮挡 | 久久国产精品久久久久久电车 | 黄色小说在线观看视频 | www插插插无码免费视频网站 | 91视频黄版| 天堂精品一区二区三区 | 色婷婷在线播放 | 人妻互换一二三区激情视频 | 欧美性猛交xxxx乱大交hd | 国产精品成人在线 | 欧美高清不卡 | 国产熟妇与子伦hd | 午夜毛片在线 | 国产精品情侣 | 成人黄色小说视频 | 青青青网| 亚洲色欲色欲www | 土耳其xxxx性hd极品 | 亚洲日本精品视频 | 黄色小视频在线免费看 | 尤物视频一区 | 自由成熟xxxx色视频 | 青青草成人av| 久久免费在线视频 | 精品视频一区二区三区 | 欧美日韩高清一区二区 国产亚洲免费看 | 麻豆传媒一区二区三区 | 精品少妇人妻av免费久久洗澡 | 亚洲av无码一区二区乱子伦as | 久久精品国产亚洲av成人 | 姑娘第5集在线观看免费好剧 | aaa黄色 | 国产一级片免费播放 | 九九热在线视频播放 | 日日夜夜精品视频 | 波多野结衣视频网站 | 福利亚洲| 花样视频污 | 日日cao | 少妇做爰免费视看片 | 国产成人午夜精华液 | 国产精品无遮挡 | tube国产麻豆 | 在线观看免费人成视频 | 全部孕妇毛片丰满孕妇孕交 | 女人裸体又黄 | 国产精品一区二区三区在线看 | 成年视频在线播放 | 国产女主播视频 | 免费午夜网站 | 男人日女人逼 | 日本一级做a爱片 | 特级一级黄色片 | 国产真实乱偷精品视频 | 国产91免费在线观看 | 蜜乳av一区| 蜜桃精品视频在线观看 | aaaaav| 高清日韩 | 欧美乱码精品一区二区 | 风间由美在线观看 | 免费观看亚洲 | 日韩视频在线观看一区 | 国产亚洲精品久久久久久无几年桃 | 福利资源导航 | 爱爱免费网站 | 欧美 另类 交 | av高清不卡 | 日本高清视频一区二区三区 | 日韩视频中文字幕 | 婷婷色吧 | av看片| 成人精品视频在线观看 | 911香蕉视频 | 蜜臀在线一区二区三区 | 日本精品少妇 | 992在线观看| 亚洲精品久久久蜜桃 | 91精品国产高清一区二区三密臀 | 蜜桃精品视频在线观看 | 男女无遮挡猛进猛出 | 亚洲国产精品欧美久久 | 强行挺进白丝老师里呻吟 | 日本久久久久久久久久久 | 四虎视频 | 男女爽爽| 日韩av第一页 | 日韩一区二区三区在线播放 | 伊人黄网|