Heim  >  Artikel  >  Java  >  Der Unterschied zwischen Referenzen in Java und Zeigern in C++

Der Unterschied zwischen Referenzen in Java und Zeigern in C++

王林
王林Original
2019-12-31 16:38:262408Durchsuche

Der Unterschied zwischen Referenzen in Java und Zeigern in C++

Java-Referenzen und C++-Zeiger verweisen beide auf eine Speicheradresse. Operationen an Speicherdaten werden durch Referenzen oder Zeiger abgeschlossen, sie weisen jedoch Unterschiede in der Implementierung, den Prinzipien, den Funktionen usw. auf .

(1) Typ: Bezieht sich auf ein Datenelement, dessen Wert eine Adresse ist. Die von Java gekapselte Adresse kann zur Anzeige in eine Zeichenfolge konvertiert werden, und es besteht kein Grund zur Sorge um die Länge. Ein C++-Zeiger ist eine Variable, die eine Adresse enthält. Die Länge entspricht im Allgemeinen der Länge des Computerworts und kann als int betrachtet werden.

Empfohlene kostenlose Online-Video-Tutorials: Java-Video-Tutorials

(2) Speicher belegt: Es gibt keine Entität, wenn die Referenz deklariert wird, und sie belegt keinen Platz. Einem C++-Zeiger wird nur dann ein Wert zugewiesen, wenn er nach seiner Deklaration verwendet wird. Speicher wird nicht zugewiesen, wenn er nicht benötigt wird.

(3) Typkonvertierung: Die Typkonvertierung der Referenz ist möglicherweise nicht erfolgreich, es wird zur Laufzeit eine Ausnahme ausgelöst oder die Kompilierung wird nicht bestanden. Ein C++-Zeiger zeigt eine Speicheradresse an und zeigt auf den Speicher. Für das Programm ist es immer noch eine Adresse, aber die Adresse, auf die gezeigt wird, entspricht möglicherweise nicht den Anforderungen des Programms.

(4) Anfangswert: Der Anfangswert der Referenz ist das Java-Schlüsselwort null. C++-Zeiger sind Ints. Wenn der Zeiger nicht initialisiert wird, wird sein Wert nicht festgelegt, was sehr gefährlich ist.

(5) Berechnung: Referenzen können nicht berechnet werden. C++-Zeiger sind int-Zeiger, die berechnet werden können, z. B. ++ oder --. Daher werden Zeiger häufig anstelle von Array-Indizes verwendet.

(6) Speicherverlust: Java-Referenzen verursachen keine Speicherverluste. C++-Zeiger sind anfällig für Speicherverluste, daher sollten Programmierer sie sorgfältig verwenden und rechtzeitig wiederverwenden.

(7) Als Parameter: Java-Methodenparameter übergeben nur Werte. Wenn eine Referenz als Parameter verwendet wird, wird eine KOPIE des in der Funktion referenzierten Werts ausgegeben, sodass es keinen Sinn macht, zwei Referenzen auszutauschen Da die Funktion nur den COPY-Wert des Parameters austauscht, ist es sinnvoll, die Eigenschaften eines Referenzparameters innerhalb der Funktion zu ändern, da das durch COPY des Referenzparameters referenzierte Objekt dasselbe Objekt wie die Referenz ist Parameter.

Der C++-Zeiger wird von der Funktion als Parameter verwendet. Tatsächlich wird die Adresse, auf die er zeigt, von der Funktion bedient, sodass Operationen, die Zeigerparameter in der Funktion verwenden, sich direkt auf die Adresse auswirken, auf die der Zeiger zeigt (Variable, Objekt, Funktion usw.).

Empfohlene verwandte Artikel und Tutorials: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Referenzen in Java und Zeigern in C++. 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