Давайте сначала посмотрим на пример:
Кода -копия выглядит следующим образом:
пакет com.amos;
/**
* @Classname: Enkeptest
* @Description: сравнение равных и == в Java
* @author: Амосли
*/
открытый класс EnpureTest {
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). Две переменные равны, верно будет возвращено.
2).
Как упомянуто выше, когда объясняется та же самая новая строка, == определяет, возвращает ли то же самое ложное, а Equals возвращает true.
Класс строки, нацеленный на метод Equals, проверьте его исходный код, и вы можете обнаружить, что равные могут рассматриваться только как особый случай ==.
Кода -копия выглядит следующим образом:
Public Boolean Equals (Object Anobject) {
if (this == anobject) {
вернуть истину;
}
if (anobject ancessionof 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])
вернуть ложь;
i ++;
}
вернуть истину;
}
}
вернуть ложь;
}
Метод Equals фактически вызывает формулу дискриминанта == с самого начала, а затем определяет, является ли ее дополнительное значение правильным.