Oba metoda equals(). in == operater se uporabljajo za primerjavo dveh objektov v Javi.
The Metoda Java string equals(). , primerja dva niza in vrne true, če se vsi znaki ujemajo v obeh nizih, sicer vrne false.
The == operater primerja referenčno ali pomnilniško lokacijo objektov v kupu, ne glede na to, ali kažejo na isto lokacijo ali ne.
Kadarkoli ustvarimo objekt z uporabo operatorja novo , bo ustvaril a novo pomnilniško mesto za ta predmet. Zato uporabimo operator ==, da preverimo, ali sta pomnilniška lokacija ali naslov dveh objektov enaka ali ne.
Na splošno sta oba operatorja equals() in == v Java se uporabljajo za primerjavo predmetov za preverjanje enakosti, vendar je tukaj nekaj razlik med obema:
- Glavna razlika med metoda .equals(). in == operater je, da je eno metoda, drugo pa operator.
- Za referenčno primerjavo lahko uporabimo operatorje == ( primerjava naslovov ) in metoda .equals() za vsebinska primerjava . Preprosto povedano, == preveri, ali oba objekta kažeta na isto pomnilniško lokacijo, medtem ko .equals() oceni primerjavo vrednosti v objektih.
- Če razred ne preglasi metodo equals , potem privzeto uporabi metodo equals(Object o) najbližjega nadrejenega razreda, ki je preglasil to metodo. **Glej Zakaj preglasiti metodo equals(Object) in hashCode()? Podrobno.
primer:
Metoda String equals() in operator == v Javi.
Java
// 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> >}> }> |
>
>Izhod
true false true true>
Pojasnilo: Tukaj ustvarimo dva objekta, in sicer s1 in s2.
- Tako s1 kot s2 se nanašata na iste objekte.
- Ko uporabimo operator == za primerjavo s1 in s2, je rezultat resničen, saj imata oba enaka naslova v vrvica stalni bazen.
- Če uporabimo enako, je rezultat resničen, ker primerja le vrednosti, podane v s1 in s2.
Bazen nizov Java
| s1 = POZDRAVLJENI |
| s2 = POZDRAVLJENI |
Java Heap
| s3 = POZDRAVLJENI |
Naj podrobneje razumemo oba operaterja:
mylivecricket.in
Operator enakosti (==)
Operatorje enakosti lahko uporabimo za vsak primitivni tip, vključno z logičnim tipom. Za tipe objektov lahko uporabimo tudi operatorje enakosti.
primer:
== operater v Javi.
Java
// 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>);> >}> }> |
>
>Izhod
false false true true>
Če uporabimo == za tipe objektov, potem mora biti združljivost med vrstami argumentov (bodisi otrok staršu ali starš otroku ali isti tip). V nasprotnem primeru bomo prejeli napako med prevajanjem.
primer:
Java
// 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);> >}> }> |
>
>
Izhod:
false false // error: incomparable types: Thread and String>
Metoda Java String equals().
V Javi je Metoda String equals(). primerja dva podana niza na podlagi podatkov/vsebine niza. Če je vsa vsebina obeh nizov enaka, je vrne true . Če se vsi znaki ne ujemajo, potem je vrne false .
Sintaksa:
Sintaksa : javno logično je enako (Object anotherObject)
Parameter :
- drug predmet- Niz za primerjavo
Vrne:
- Logična vrednost :
- prav- Če so nizi enaki
- false- če nizi niso enaki
primer:
Metoda String equals() v Javi
Java
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));> >}> }> |
>
>
livecricket.is
Izhod:
true false false false true>
Pojasnilo: Tukaj uporabljamo metodo .equals za preverjanje, ali dva objekta vsebujeta iste podatke ali ne.
- V zgornjem primeru ustvarimo 3 objekte Thread in 2 predmeta String.
- Pri prvi primerjavi preverimo, ali je t1 == t3 ali ne. Kot vemo oba t1 in t3 kažeta na isti predmet . Zato se vrne true.
- Pri drugi primerjavi uporabljamo operator == za primerjavo objektov String in ne vsebine objektov. Tukaj sta oba predmeta različna, zato je rezultat te primerjave False.
- Ko primerjamo 2 objekta String z operatorjem equals(), potem preverjamo, ali oba objekta vsebujeta iste podatke ali ne.
- Oba objekta vsebujeta isti niz, tj. GEEKS. Zato se vrne true.
Preberite tudi:
- Metoda Character.equals() v Javi s primeri
- ==, equals(), compareTo(), equalsIgnoreCase() in compare()
Zaključek
Metoda Java string equals() in operator == se uporabljata za primerjavo nizov v Javi. V tej vadnici smo s primeri obravnavali ==operator in metodo String equals() v Javi.
Read More String Methods in Java>
Razlika med metodo == in .equals() - Pogosta vprašanja
1. Kakšna je razlika med str1 == str2 in str1 je enako str2?
V Javi str1==str2 vrne true, če sta str1 in str2 niza z enako vsebino. To je zato, ker so nizi z isto vsebino shranjeni na isti lokaciji.
str1.equals(str2) bo vrnil true, če sta str1 in str 2 različna objekta niza, vendar imata enako vsebino.
2. Kakšna je razlika med == in equals pri primerjavi nizov?
The metoda string equals(). primerja dva niza in vrne true, če se vsi znaki ujemajo v obeh nizih, sicer vrne false.
Operator == primerja referenčno ali pomnilniško lokacijo objektov v kopici, ne glede na to, ali kažejo na isto lokacijo ali ne.
3. Kakšna so pravila metode equals()?
- Refleksivnost: Za vsak predmet x mora x.equals(x) vedno vrniti true.
- Simetrija : Če x.equals(y) vrne true, potem mora y.equals(x) prav tako vrniti true.
- Prehodnost : Če sta x.equals(y) in y.equals(z) oba resnična, mora biti tudi x.equals(z) resničen.
- Doslednost : Večkratni klici x.equals(y) bi morali vrniti enak rezultat.
- Neničnost: Metoda equals() nikoli ne sme vrniti true v primerjavi z null.