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

Java-Entwicklung == und equal()

无忌哥哥
Freigeben: 2018-07-23 09:48:46
Original
2084 Leute haben es durchsucht

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

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

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!

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