==和equals的區別

==
操作符專門用來比較兩個變量的值是否相等。也就是用于比較變量所對應的內存中所存儲的值是否相同。要比較兩個基本類型數據或兩個引用變量是否相同,只能用==操作符。

equals
如果一個引用指向的數據是對象類型的,則涉及兩塊內存了,對象本身占一塊(堆),引用或變量占一塊(棧)變量對應的內存所存儲的數值就是對象所占用的那塊內存的首地址。對于指向對象類型的變量,如果要比較兩個變量是否同時指向同一個對象,這時候就需要用==來操作了。equals用于比較兩個獨立的對象的內容是否相同。
比如:String a = new String("foo");
String b = new String("foo");
兩條new 語句創建了兩個對象,然后用a,b 這兩個變量分別指向了
其中一個對象,這是兩個不同的對象,它們的首地址是不同的,即a
和b 中存儲的數值是不相同的,所以,表達式a==b 將返回false,
而這兩個對象中的內容是相同的,所以,表達式a.equals(b)將返回
true。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,374評論 11 349
  • 如果你沒有深度分析過的話,那么這可能是一個非常靈異的事件。 靈異事件一: 靈異事件二: 靈異事件三: 靈異事件四:...
    TinyDolphin閱讀 476評論 0 3
  • 這是我第三次提分手了,我不知道生命里到底能不能留下這個人!于是我在分手后的兩天里反復的回憶,我跟他之間的細節,這一...
    郭宗艷說閱讀 486評論 0 0
  • 因老師打電話告狀:政治默寫只有一張紙,沒有本子!水杯灑了,沒有及時處理,老師認為素質差!車屜垃圾多,影響班級榮譽…...
    劉小兔子閱讀 255評論 0 0