Java中 和equals的區別

2021-09-06 01:34:22 字數 823 閱讀 1961

我們在寫程式的過程中,判斷會將兩個物件進行對比。比如拿字串來說吧!

string hello = "hello";

string greeting = "hello";

string str = new string("hello");

system.out.println("hello.equals(greeting):" + hello.equals(greeting)); //true

system.out.println("hello == greeting:" + (hello == greeting)); //true

system.out.println("hello == str:" + (hello == str)); //false 因為位址不一樣,重新分配了乙個新的位址去儲存str

system.out.println("hello equals str:" + hello.equals(str)); //true

我們在使用比較的時候,可以使用==和equals,但是它們是有區別的。我們使用equals方法檢測兩個字串是否相等時比較字串裡面的內容。如果內容相等,則返回true,否則返回false。

一定不要使用==運算子檢測兩個字串是否相等,這個運算子只能夠確定兩個字串是否放置在同乙個位置上。如果字串放置在同乙個位置上,它們必然是相等的。但是,完全有可能將內容相同的多個字串的拷貝放置在不同的位置上。

如果虛擬機器始終將相同的字串共享,就可以使用==運算子檢測是否相等。但實際上只有字串常量是共享的。而使用+或者substring等操作產生的結果並不是共享的,因此千萬不要使用==運算子測試字串的相等性,以免產生相應的問題。

java中 和 equals區別

是比較2個物件是否相等,物件包括基本型別的變數和引用型別變數 object類是所有類的父類 並且 equals是其中的方法 所以說 和equals 本質上都是一樣的 object 類中的equals 方法是 public boolean equals object o return this o 其...

Java中 和equals 的區別

1.用於比較引用資料型別和比較基本資料型別時具有不同的功能 比較基本資料型別,如果兩個值相同,則結果為true。eg package demo public class demo boolean compare int x int y else return false 這段 返回false。而在比...

java中 和equals的區別

和 equals 都是比較是否相等,請問它們到底有什麼區別呢?相等 a 傳統的理解一般都是數字值是否相等 b 在程式中任何東西都是資料,都會比較是否相等 物件 比較運算子 1 基本資料型別變數 比較的就是值是否相等 2 引用資料型別變數 比較的是物件的位址是否一樣 排除特殊 string equal...