Java中==與equals()有什么區(qū)別-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Java中==與equals()有什么區(qū)別,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比東光網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式東光網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋東光地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。

  單獨把一個東西說清楚,然后再說清楚另一個,這樣,它們的區(qū)別自然就出來了,混在一起說,則很難說清楚

  “==”操作符專門用來比較兩個變量的值是否相等,也就是用于比較變量所對應(yīng)的內(nèi)存中所存儲的數(shù)值是否相同,要比較兩個基本類型的數(shù)據(jù)或兩個引用變量是否相等,只能用==操作符。

  如果一個變量指向的數(shù)據(jù)是對象類型的,那么,這時候涉及了兩塊內(nèi)存,對象本身占用一塊內(nèi)存(堆內(nèi)存),變量也占用一塊內(nèi)存,例如 Objet obj = new Object();變量 obj 是一個內(nèi)存,new Object()是另一個內(nèi)存,此時,變量 obj 所對應(yīng)的內(nèi)存中存儲的數(shù)值就是對象占用的那塊內(nèi)存的首地址。對于指向?qū)ο箢愋偷淖兞?,如果要比較兩個變量是否指向同一個對象,即要看這兩個變量所對應(yīng)的內(nèi)存中的數(shù)值是否相等,這時候就需要用==操作符進行比較。

  equals 方法是用于比較兩個獨立對象的內(nèi)容是否相同,就好比去比較兩個人的長相是否相同,它比較的兩個對象是獨立的。例如,對于下面的代碼:

  String a=new String("foo");

  String b=new String("foo");

  兩條 new 語句創(chuàng)建了兩個對象,然后用 a,b 這兩個變量分別指向了其中一個對象,這是兩個不同的對象,它們的首地址是不同的,即 a 和 b 中存儲的數(shù)值是不相同的,所以,表達式 a==b 將返回false,而這兩個對象中的內(nèi)容是相同的,所以,表達式a.equals(b)將返回 true。

  在實際開發(fā)中,我們經(jīng)常要比較傳遞進行來的字符串內(nèi)容是否等,例如,String input = …;input.equals(“quit”),許多人稍不注意就使用==進行比較了,這是錯誤的,隨便從網(wǎng)上找?guī)讉€項目實戰(zhàn)的教學(xué)視頻看看,里面就有大量這樣的錯誤。記住,字符串的比較基本上都是使用 equals 方法。

  如果一個類沒有自己定義 equals 方法,那么它將繼承 Object 類的 equals 方法,Object 類的 equals 方法的實現(xiàn)代碼如下:

  boolean equals(Object o){

  return this==o;

  }

  這說明,如果一個類沒有自己定義 equals 方法,它默認的 equals方法(從 Object 類繼承的)就是使用==操作符,也是在比較兩個變量指向的對象是否是同一對象,這時候使用 equals 和使用==會得到同樣的結(jié)果,如果比較的是兩個獨立的對象則總返回 false。

  如果你編寫的類希望能夠比較該類創(chuàng)建的兩個實例對象的內(nèi)容是否相同,那么你必須覆蓋 equals 方法,由你自己寫代碼來決定在什么情況即可認為兩個對象的內(nèi)容是相同的。

上述就是小編為大家分享的Java中==與equals()有什么區(qū)別了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章標(biāo)題:Java中==與equals()有什么區(qū)別-創(chuàng)新互聯(lián)
文章地址:http://muchs.cn/article4/coepoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化面包屑導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)商城網(wǎng)站、網(wǎng)站制作、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)