Heim > Java > Warum benötigt Primitive in Java nicht die .equals-Methode?

Warum benötigt Primitive in Java nicht die .equals-Methode?

PHPz
Freigeben: 2024-02-08 23:18:21
nach vorne
543 Leute haben es durchsucht

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().

Frageninhalt

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?

Problemumgehung

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 AutoboxingIntegerint 的完整实现对象类型,在现代 Java 中,您会得到名为 自动装箱。所以如果你不使用int,而是使用Integer类型,那么你可以调用.equals(). Wenn Sie also nicht int, sondern den Typ Integer verwenden, können Sie

aufrufen String in Java

ist etwas Besonderes, aber im Grunde ein unveränderliches Objekt.

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!

Verwandte Etiketten:
Quelle:stackoverflow.com
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