Unterschied:
== Was verglichen wird, ist die (Heap-)Speicheradresse des im Variablenspeicher (Stapelspeicher) gespeicherten Objekts. Wird verwendet, um zu bestimmen, ob die Adressen der beiden Objekte gleich sind, dh ob sie auf dasselbe Objekt verweisen. Was verglichen wird, ist die eigentliche Zeigeroperation.
equals wird verwendet, um zu vergleichen, ob der Inhalt zweier Objekte gleich ist. Da alle Klassen von der Klasse java.lang.Object erben, ist sie auf alle Objekte anwendbar, sofern diese Methode nicht überschrieben wird Die Methode in der Object-Klasse wird immer noch aufgerufen, aber die Methode equal in Object gibt das Urteil == zurück.
Datentypen in Java können in zwei Kategorien unterteilt werden:
Grundlegende Datentypen
Byte, Short, Char, Int, Long, Float, Double, Boolean
Vergleiche zwischen grundlegenden Datentypen erfordern das doppelte Gleichheitszeichen (==), da sie Werte vergleichen.
Referenzdatentyp
Schnittstelle, Klasse, Array und andere nicht grundlegende Datentypen
String in Java gehört dazu Referenzdatentyp, da String eine Klasse ist.
Wenn sie mit (==) vergleichen, vergleichen sie ihre Speicheradressen im Speicher. Daher ist das Ergebnis ihres Vergleichs wahr, andernfalls ist das Ergebnis falsch. Da jedes Mal ein neuer Heap-Speicherplatz geöffnet wird
Entity entity = new Entity(); Entity entity1 = new Entity(); Entity entity2 = entity; System.out.println(entity==entity2); System.out.println(entity.equals(entity2)); System.out.println(entity.equals(entity1)); System.out.println(entity==entity1);
Ergebnis:
true true false false
Zusammenfassung:
Für zusammengesetzte Daten Vergleiche gleich Wenn die Gleichheitsmethode nicht überschrieben wird, ist der Vergleich zwischen ihnen immer noch der Adresswert des Speicherorts im Speicher, der mit dem Ergebnis des doppelten Gleichheitszeichens (==) übereinstimmt , das Ergebnis ist das gleiche wie die überschreibende Anfrage.
== Funktion:
Grundtyp: Der Vergleich ist, ob die Werte gleich sind;
Referenztyp: Der Vergleich ist, ob die Adresswerte gleich sind das gleiche. Die Rolle von
ist gleich:
Referenztyp: Vergleichen Sie nach dem Überschreiben dieser Methode standardmäßig, ob die Mitgliedsvariablenwerte des Objekts gleich sind.
Empfohlenes Tutorial: Java-Einführungs-Tutorial
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen gleich und „==' in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!