In Java bezieht sich primitiv (primitiver Datentyp) auf den grundlegenden Datentyp in der Java-Sprache, z. B. int, double, char usw. Im Gegensatz dazu gibt es Referenzdatentypen wie String, Object usw. Im Gegensatz zu Referenzdatentypen müssen primitive Typen nicht mit der Methode .equals() verglichen werden. Dies liegt daran, dass Variablen vom primitiven Typ tatsächliche Werte und keine Objektreferenzen speichern. Daher können Sie beim Vergleich zweier Variablen vom primitiven Typ den ==-Operator direkt zum Vergleich verwenden, da er vergleicht, ob die Werte selbst gleich sind. Für Referenzdatentypen müssen Sie die Methode .equals() verwenden, da sie vergleicht, ob die Objektreferenzen auf dasselbe Objekt verweisen. Aus diesem Grund benötigen primitive Typen in Java nicht die Methode .equals().
Wenn Sie also in Java Zeichenfolgen vergleichen, müssen Sie die Methode .equals verwenden, da == nur die Speicheradresse und nicht den Inhalt vergleicht. Das ist okay, das kann ich verstehen. Was ich aber nicht verstehe ist, warum das Original nicht das gleiche Problem hat. Wie können wir den ==-Operator mit Grundelementen verwenden?
Dies beruht auf der Tatsache, dass Grundelemente keine vollständigen Java-Objekte sind und daher „als Wert übergeben“ werden, während Objekte „als Referenz übergeben“ werden.
Außerdem können Sie eine .equals()
-Funktion nicht für ein Grundelement verwenden, da es sich nicht um ein vollständig instanziiertes Java-Objekt einer Klasse handelt und die Definition der Funktion in der Klasse/dem Objekt erfordert.
Die meisten Grundelemente haben einen äquivalenten Objekttyp, zum Beispiel ist Integer
ein vollständig implementierter Objekttyp von int
, in modernem Java erhalten Sie einen Objekttyp mit dem Namen AutoboxingInteger
是 int
的完整实现对象类型,在现代 Java 中,您会得到名为 自动装箱。所以如果你不使用int
,而是使用Integer
类型,那么你可以调用.equals()
. Wenn Sie also nicht int
, sondern den Typ Integer
verwenden, können Sie
Dies ist eine zufällige Aufschlüsselung der Informationen, aber ich glaube, wenn man sie zusammenzählt, bekommt man hoffentlich eine Vorstellung davon, was los ist. 🎜
Das obige ist der detaillierte Inhalt vonWarum benötigt Primitive in Java nicht die .equals-Methode?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!