Heim >Java >javaLernprogramm >Java-Entwicklung == und equal()

Java-Entwicklung == und equal()

无忌哥哥
无忌哥哥Original
2018-07-23 09:48:462100Durchsuche

Das Zeichen

== vergleicht Werte beim Vergleich grundlegender Datentypen, während es bei Verwendung des Zeichens == zum Vergleich zweier Objekte die Adresswerte der beiden Objekte vergleicht equal() nicht Beim Überschreiben wird die Speicheradresse verglichen, aber die meisten Klassen in Java haben die Methode equal() überschrieben, sodass der Vergleichswert

String str1 = "abc";
String str2 = "abc";
System.out.println(str1.equals(str2));
System.out.println(str1 == str2);

ist werden zurückgegeben, und das zweite = = gibt auch true zurück:

Da der Konstantenpool im Speicher zum Methodenbereich gehört, gibt es beim Erstellen von str1 keinen Konstantenpool, sodass das Objekt „abc“ erstellt wird Wenn str2 erstellt wird, ist die Konstante bereits im Pool vorhanden, daher wird sie beim zweiten Erstellen direkt verwendet, sodass die Adresse dieselbe ist.

Wenn sie geändert wird

String str1 = new String("abc");
String str2 = new String("abc");

str1==str2, es wird false zurückgegeben, da zwei Objekte erstellt werden und die Adresse unterschiedlich ist.

Das obige ist der detaillierte Inhalt vonJava-Entwicklung == und equal(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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