Die Differenz zwischen gleichem und == in Java
Datentypen in Java können in zwei Kategorien unterteilt werden:
1. Grundlegende Datentyp, auch als primitiver Datentyp bezeichnet. Byte, Short, Char, Int, Long, Float, Double, Boolean
Der Vergleich zwischen ihnen, das ein Doppelzeichen (==) anwendet, wird mit ihren Werten verglichen.
2. Zusammenhang -Datentyp (Klasse)
Wenn sie mit (==) vergleichen, vergleichen sie ihre Speicheradresse im Speicher. Daher ist das Ergebnis nach dem Vergleich nicht wahr, wenn es sich nicht um Objekte aus demselben Neuen handelt, andernfalls ist das Ergebnis nach dem Vergleich falsch. Alle Klassen in Java erben aus dem Basisklassenobjekt. In der Basisklasse im Objekt wird eine Methode der Gleichen definiert. Das anfängliche Verhalten dieser Methode ist die Speicheradresse des Vergleichsobjekts, aber in einigen Klassenbibliotheken wird diese Methode überschrieben. Zum Beispiel haben String, Ganzzahl und Datum ihre eigene Implementierung in diesen Klassen und sind nicht mehr die Speicheradresse der Vergleichsklasse im Heap -Speicher.
Für den gleichen Vergleich zwischen zusammengesetzten Datentypen, ohne die Equals -Methode zu überschreiben, basiert ihr Vergleich auf dem Adresswert ihres Speicherorts im Speicher. Da die Equals -Objektmethode auch mit einem doppelten gleichen Vorzeichen verglichen wird (==), ist das Ergebnis nach dem Vergleich das gleiche wie das Ergebnis des doppelten gleichen Vorzeichens (==).
Der Unterschied zwischen Java gleich und =, ==
1. Die Differenz zwischen == und gleich
1. == ist der Bediener
2. Equals ist eine Methode des String -Objekts
Es gibt im Allgemeinen zwei Arten von Vergleiche
1. Vergleich der grundlegenden Datentypen
2. Vergleich von Referenzobjekten
1. Vergleich der grundlegenden Datentypen
== und gleich vergleichen Sie, ob die Werte gleich sind, wenn gleich, es ist wahr, sonst ist sie falsch
2. Vergleich von Referenzobjekten
== und gleich werden beide verglichen, ob die Adressen im Stapelspeicher gleich sind. Wenn es gleich ist, ist es wahr, sonst ist es falsch.
Beachten:
1. String ist ein spezieller Referenzdatentyp. == vergleicht, ob die Referenzadresse des String -Objekts gleich ist, und gleich vergleicht der Inhalt im Stapel konsistent.
String ss = new String ("ABC"); String SSS = new String ("ABC"); if (ss == SSS) {System.out.println ("SS == SSS ist wahr"); } if (ss.equals (SSS)) {System.out.println ("ss Equals ist ss is wahr"); }Konsolenausgabe:
SS! = SSS
Ss gleich SSS
Zeigt an, dass die Speicheradressen von SS und SS im Stapel unterschiedlich sind, der Inhalt im Haufen gleich.
String ss = new String ("ABC");
String SSSS = ss;
// beurteilen, ob die Referenzadressen von SS und SSS im Stapel gleich sind, wenn (SS == SSSS) {System.out.println ("SS == SSSS"); } else {System.out.println ("SS! = SSSS"); } // Beurteilen Sie, ob der Inhalt von SS und SSSS im Heap gleich ist, wenn (ss.equals (SSSS)) {System.out.println ("SS Equals SSSS"); } else {System.out.println ("SS nicht gleich ssss"); }Konsolenausgabe:
SS == SSSS
SS ist gleich SSS
Dies zeigt, dass SS und SSS die gleichen Objekte sind und dass sie den gleichen Inhalt auf dem Haufen haben
2. Vergleich von Referenzobjekten
Testbean obj1 = new TestBean (); Testbean obj2 = new TestBean (); Testbean obj3 = obj1; if (obj1 == obj2) {System.out.println ("obj1 == obj2"); } else {System.out.println ("obj1! = obj2"); } if (obj1 == obj3) {System.out.println ("obj1 == obj3"); } else {System.out.println ("obj1! = obj3"); }Konsolenausgabe:
OBJ1! = OBJ2
OBJ1 == OBJ3
Es bedeutet, dass OBJ1 und OBJ2 nicht dasselbe Objekt sind und die Referenzadresse im Stapel unterschiedlich ist
OBJ1 und OBJ3 sind die gleichen Objekte, und die Referenzadresse im Stapel ist der gleiche
2. Die Differenz zwischen = und gleich ==
= Repräsentiert die Zuordnung, dh den Wert auf der rechten Seite von = der Variablen links. Gleich und == sind die Operationen
Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!