Heim > Java > JavaBase > Der Unterschied zwischen gleich und „==' in Java

Der Unterschied zwischen gleich und „==' in Java

王林
Freigeben: 2019-11-19 17:03:35
Original
2092 Leute haben es durchsucht

Der Unterschied zwischen gleich und „==' in Java

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);
Nach dem Login kopieren

Ergebnis:

true
true
false
false
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage