Heim >Java >javaLernprogramm >Java-Entwicklung == und equal()
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!