1. java中equals()方法詳解
第一個類V1和V2都是一個對象引用啊,指向不同的內存地址的,i只是對象的成員
2. equals()和==到底有什麼區別啊
1、功能不同
"=="是判斷兩個變數或實例是不是指向同一個內存空間。
"equals"是判斷兩個變數或實例所指向的內存空間的值是不是相同。
2、定義不同
"equals"在JAVA中是一個方法。
"=="在JAVA中只是一個運算符合。
例子:
Student student1 = new Student();
Student student2 = new Student();
System.out.println(student1.equals(student2));
System.out.println(student1 == student2);
3、運行速度不同
"=="比"equals"運行速度快,因為"=="只是比較引用。
"equals"比"=="運行速度要慢。
(2)java中的equals源碼擴展閱讀
equals()方法特點:
1、自反性:x.equals(x)返回true;
2、對稱性:若x.equals(y)為true,則y.equals(x)亦為true;
3、傳遞性:若x.equals(y)為true且y.equals(z)也為true,則x.equals(z)亦為true;
4、一致性:x.equals(y)的第一次調用為true,那麼x.equals(y)的第二次、第三次、第n次調用也均為true,前提條件是沒有修改x也沒有修改y;
5、對於非空引用x,x.equals(null)永遠返回為false。
3. java ,equals方法源代碼里黃圈「this」是指什麼
this表示當前對象,就是本類的對象。
4. java中equals使用方法
java中equals使用方法:
equals 方法是String類從它的超類Object中繼承的, 被用來檢測兩個對象是否相等,即兩個對象的內容是否相等,區分大小寫。
對於字元串變數來說,使用「==」和「equals()」方法比較字元串時,其比較方法不同。「==」比較兩個變數本身的值,即兩個對象在內存中的首地址。「equals()」比較字元串中所包含的內容是否相同。例如:
s1=newString("abc");
s2=newString("abc");
s1.equals(s2)是true
3.對於非字元串變數來說,"=="和"equals"方法的作用是相同的都是用來比較其對象在堆內存的首地址,即用來比較兩個引用變數是否指向同一個對象。
classA
{
Aobj1=newA();
Aobj2=newA();
}
obj1.equals(obj2)是false
5. java中判斷兩個數組是否相等的方法
還是用Arrays.equals吧
==是比較地址
equals主要用來單個比較
下面是 Arrays.equals方法的源碼
public static boolean equals(long[] a, long[] a2) {
if (a==a2)
return true;
if (a==null || a2==null)
return false;
int length = a.length;
if (a2.length != length)
return false;
for (int i=0; i<length; i++)
if (a[i] != a2[i])
return false;
return true;
}
6. .equals()到底是什麼意思
.equals() 在Java中判斷是否相等,與 == 的區別是 .equals() 只判斷值是否相等,不管兩者是否存在同一地址。而 == 則是判斷值與存在地址都得相等
(6)java中的equals源碼擴展閱讀:
由equals的源碼可以看出這里定義的equals與==是等效的(Object類中的equals沒什麼區別),不同的原因就在於有些類(像String、Integer等類)對equals進行了重寫,但是沒有對equals進行重寫的類(比如我們自己寫的類)就只能從Object類中繼承equals方法,其equals方法與==就也是等效的,除非我們在此類中重寫equals。
另外,"=="比"equals"運行速度快,因為"=="只是比較引用。
7. 關於JAVAString類equals方法的源代碼
Sting創建的是兩個對象,一個是存在常量池中,還有一個是存在對象棧中。