Oboje metoda równa(). i == operator służą do porównywania dwóch obiektów w Javie.
The Metoda Java string równa się (). , porównuje dwa ciągi i zwraca wartość true, jeśli wszystkie znaki w obu ciągach pasują, w przeciwnym razie zwraca wartość false.
The == operator porównuje lokalizację odniesienia lub pamięci obiektów na stercie, niezależnie od tego, czy wskazują one na tę samą lokalizację, czy nie.
Ilekroć tworzymy obiekt za pomocą operatora nowy , utworzy nowe miejsce w pamięci dla tego obiektu. Używamy więc operatora ==, aby sprawdzić, czy lokalizacja pamięci lub adres dwóch obiektów są takie same, czy nie.
Ogólnie rzecz biorąc, oba operatory równa się () i == w Jawa służą do porównywania obiektów w celu sprawdzenia równości, ale oto niektóre różnice między nimi:
- Główna różnica między metoda .equals(). i == operator jest to, że jedna jest metodą, a druga operatorem.
- Możemy użyć operatorów == do porównania referencji ( porównanie adresów ) i .equals() dla porównanie treści . Krótko mówiąc, == sprawdza, czy oba obiekty wskazują na tę samą lokalizację w pamięci, podczas gdy .equals() ocenia porównanie wartości w obiektach.
- Jeśli klasa tego nie robi zastąpić metodę równości , domyślnie używa metody równości (Object o) najbliższej klasy nadrzędnej, która zastąpiła tę metodę. **Widzieć Dlaczego zastąpić metodę równości (obiekt) i hashCode ()? szczegółowo.
Przykład:
Metoda String równa się () i operator == w Javie.
Jawa
język maszyny
// Java program to understand> // the concept of == operator> public> class> Test {> >public> static> void> main(String[] args)> >{> >String s1 =>'HELLO'>;> >String s2 =>'HELLO'>;> >String s3 =>new> String(>'HELLO'>);> >System.out.println(s1 == s2);>// true> >System.out.println(s1 == s3);>// false> >System.out.println(s1.equals(s2));>// true> >System.out.println(s1.equals(s3));>// true> >}> }> |
>
>Wyjście
true false true true>
Wyjaśnienie: Tutaj tworzymy dwa obiekty, a mianowicie s1 i s2.
- Zarówno s1, jak i s2 odnoszą się do tych samych obiektów.
- Kiedy użyjemy operatora == do porównania s1 i s2, wynik będzie prawdziwy, ponieważ oba mają te same adresy w strunowy stały basen.
- Używając równości, wynik jest prawdziwy, ponieważ porównuje tylko wartości podane w s1 i s2.
Pula ciągów Java
| s1 = WITAJ |
| s2 = WITAJ |
Kopia Java
| s3 = WITAJ |
Przyjrzyjmy się szczegółowo obu operatorom:
ubuntu, które polecenie
Operator równości(==)
Operatory równości możemy zastosować dla każdego typu pierwotnego, łącznie z typem boolowskim. Możemy także zastosować operatory równości dla typów obiektów.
Przykład:
== operator w Javie.
Jawa
// Java program to illustrate> // == operator for compatible data> // types> class> Test {> >public> static> void> main(String[] args)> >{> >// integer-type> >System.out.println(>10> ==>20>);> >// char-type> >System.out.println(>'a'> ==>'b'>);> >// char and double type> >System.out.println(>'a'> ==>97.0>);> >// boolean type> >System.out.println(>true> ==>true>);> >}> }> |
>
rdzeń języka Java
>Wyjście
false false true true>
Jeśli zastosujemy == dla typów obiektów, to tak powinna być zgodność między typami argumentów (albo dziecko do rodzica, albo rodzic do dziecka, albo ten sam typ). W przeciwnym razie otrzymamy błąd w czasie kompilacji.
Przykład:
Jawa
// Java program to illustrate> // == operator for incompatible data types> class> Test {> >public> static> void> main(String[] args)> >{> >Thread t =>new> Thread();> >Object o =>new> Object();> >String s =>new> String(>'GEEKS'>);> >System.out.println(t == o);> >System.out.println(o == s);> >// Uncomment to see error> >System.out.println(t==s);> >}> }> |
>
>
Wyjście:
false false // error: incomparable types: Thread and String>
Metoda Java String równa się().
W Javie tzw Metoda String równa się(). porównuje dwa podane ciągi na podstawie danych/zawartości ciągu. Jeśli cała zawartość obu ciągów jest taka sama, to zwraca prawdę . Jeśli wszystkie znaki nie są dopasowane, to tak zwraca wartość fałszywą .
Składnia:
Składnia : publiczna wartość logiczna równa się (obiekt innego obiektu)
Parametr :
klasa abstrakcyjna w Javie
- inny obiekt- Ciąg do porównania
Zwroty:
- Wartość logiczna :
- PRAWDA- Jeśli ciągi są równe
- FAŁSZ- jeśli ciągi znaków nie są równe
Przykład:
Metoda String równa się () w Javie
Jawa
jaki jest rozmiar ekranu mojego komputera
public> class> Test {> >public> static> void> main(String[] args)> >{> >Thread t1 =>new> Thread();> >Thread t2 =>new> Thread();> >Thread t3 = t1;> >String s1 =>new> String(>'GEEKS'>);> >String s2 =>new> String(>'GEEKS'>);> >System.out.println(t1 == t3);> >System.out.println(t1 == t2);> >System.out.println(s1 == s2);> >System.out.println(t1.equals(t2));> >System.out.println(s1.equals(s2));> >}> }> |
>
>
Wyjście:
true false false false true>
Wyjaśnienie: Tutaj używamy metody .equals, aby sprawdzić, czy dwa obiekty zawierają te same dane, czy nie.
- W powyższym przykładzie tworzymy 3 obiekty Thread i 2 obiekty String.
- W pierwszym porównaniu sprawdzamy, czy t1 == t3, czy nie. Jak wiemy oba t1 i t3 wskazują na ten sam obiekt . Dlatego zwraca wartość true.
- W drugim porównaniu używamy operatora == do porównywania obiektów typu String, a nie zawartości obiektów. Tutaj oba obiekty są różne, dlatego wynik tego porównania jest fałszywy.
- Kiedy porównujemy 2 obiekty String za pomocą operatora równości(), sprawdzamy, czy oba obiekty zawierają te same dane, czy nie.
- Obydwa obiekty zawierają ten sam ciąg znaków, czyli GEEKS. Dlatego zwraca wartość true.
Przeczytaj także:
- Metoda Character.equals() w Javie z przykładami
- ==, równa się(), porównaj(), RówneIgnoreCase() i porównaj()
Wniosek
Zarówno metoda Java string równa się (), jak i operator == są używane do porównywania ciągów w Javie. W tym samouczku omówiliśmy na przykładach metody ==operator i String Equals() w Javie.
Read More String Methods in Java>
Różnica pomiędzy metodą == i .equals() – często zadawane pytania
1. Jaka jest różnica między str1 == str2 i str1 równa się str2?
W Javie str1==str2 zwróci wartość true, jeśli str1 i str2 są ciągami znaków o tej samej treści. Dzieje się tak, ponieważ ciągi znaków o tej samej treści są przechowywane w tym samym miejscu.
str1.equals(str2) zwróci wartość true, jeśli str1 i str 2 są różnymi obiektami łańcuchowymi, ale mają tę samą treść.
2. Jaka jest różnica między == a równością w porównaniu ciągów?
The metoda string równa się(). porównuje dwa ciągi i zwraca wartość true, jeśli wszystkie znaki w obu ciągach pasują, w przeciwnym razie zwraca wartość false.
Operator == porównuje lokalizację odniesienia lub pamięci obiektów na stercie, niezależnie od tego, czy wskazują one na tę samą lokalizację, czy nie.
3. Jakie zasady obowiązują w metodzie równości()?
- refleksyjność: Dla dowolnego obiektu x funkcja x.equals(x) powinna zawsze zwracać wartość true.
- Symetria : Jeśli x.equals(y) zwraca wartość true, wówczas y.equals(x) również musi zwracać wartość true.
- Przechodniość : Jeśli oba x.equals(y) i y.equals(z) są prawdziwe, to x.equals(z) również musi być prawdziwe.
- Konsystencja : Wielokrotne wywołania x.equals(y) powinny zwrócić ten sam wynik.
- Nieważność: Metoda równości() nigdy nie powinna zwracać wartości true w porównaniu z wartością null.