"==" 操作符的作用:
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操作都會生成新...