java的equals和==的比擬示例。本站提示廣大學習愛好者:(java的equals和==的比擬示例)文章只能為提供參考,不一定能成為您想要的結果。以下是java的equals和==的比擬示例正文
先看例子:
package com.amos;
/**
* @ClassName: EqualTest
* @Description:Java中的equal和==的比擬
* @author: amosli
*/
public class EqualTest {
public static void main(String[] args) {
int a = 1;
float b = 1.0f;
System.out.println(a == b);// true
String c = new String("hi_amos");
String d = new String("hi_amos");
System.out.println(c == d);// false
System.out.println(c.equals(d));// true
}
}
Java中斷定兩個變量能否相等重要有兩種判方法:一種是應用==運算符,另外一種是應用equals辦法來斷定二者能否雷同.
1).當應用==來斷定兩個變量能否相等時,假如兩個變量是根本類型變量,且都是數值類型,不請求數據類型嚴厲雷同,只需兩個變量的值相等,那末將前往true.
2).假如關於兩個援用類型變量,它們必需指向一個對象時,==斷定才會前往true.==弗成用於比擬類型上沒有父子關系的兩個對象.
如上可以說明異樣一new String時,==斷定二者能否雷同前往的是false,而equals前往的是true.
equals辦法針對的String類,檢查其源碼,可以發明其實equals只能算是==的一種特例.以下面源碼所示:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
equals辦法現實上一開端就挪用了==辨別式,然後再斷定其進一步值能否准確