String使用equals和 比較的區別

2022-01-15 00:38:03 字數 582 閱讀 3988

"=="  操作符的作用:

1、用於基本資料型別的比較

2、判斷引用是否指向堆記憶體的同一塊位址。

equals的作用:

用於判斷兩個變數是否是對同乙個物件的引用,即堆中的內容是否相同,返回值為布林型別

在class檔案中有一部分 來儲存編譯期間生成的 字面常量以及符號引用,這部分叫做class檔案常量池,在執行期間對應著方法區的執行時常量池。

string str1 = "hello world";和string str3 = "hello world"; 都在編譯期間生成了 字面常量和符號引用,執行期間字面常量"hello world"被儲存在執行時常量池(當然只儲存了乙份)。通過

這種方式來將string物件跟引用繫結的話,jvm執行引擎會先在執行時常量池查詢是否存在相同的字面常量,如果存在,則直接將引用指向已經存在的字面常量;否則在執行時常量池開

闢乙個空間來儲存該字面常量,並將引用指向該字面常量。

總所周知,通過new關鍵字來生成物件是在堆區進行的,而在堆區進行物件生成的過程是不會去檢測該物件是否已經存在的。因此通過new來建立物件,建立出的一定是不同的對

象,即使字串的內容是相同的。

Object 和 String 的equals比較

先看一段string 和 乙個普通類的equals方法的比較 object 中的equlas的使用 author dell public class testequals dog 中的沒有equals方法的重寫 author dell public class dog cat 重寫了equals方法...

String 等號比較 和 equals

1 aa equals aa 返回 true 因為 string類重寫了object物件的equals 2 string a1 new string aa string a2 new string aa system.out.println a1 a2 返回false string a1 aa st...

String的介紹 乾貨 和equals區別

string類是final類,也即意味著string類不能被繼承,並且它的成員方法都預設為final方法。大家 原始碼會發現string類其實是通過char陣列來儲存字串的.string物件一旦被建立就是固定不變的了,對string物件的任何改變都不影響到原物件,相關的任何change操作都會生成新...