Einführung in Zeiger in Java
- Zeiger in Java
- Kein Zeiger in Java
- Alternative: Referenzen in Java-Sprache
- Nachteile der Verwendung von Referenzen als Zeiger in Java
Heute werden wir etwas über Zeiger in Java lernen und wie wir einen Vorteil daraus ziehen können, aber vorher werden wir sehen, ob sie in Java verfügbar sind; wenn nicht, was sind die alternativen?
Wir werden all diese Bedenken in diesem Artikel beantworten. Wir werden Zeiger auch mit anderen Sprachen namens C und C++ vergleichen.
Zeiger in Java
Wie wir wissen, sind Zeiger Objekte, die eine Speicheradresse speichern. Sie sind praktisch bei der Adressverwaltung und Speicherzuweisung, funktionieren aber nur, wenn eine Sprache über Zeigerarithmetik verfügt.
Normalerweise haben Sprachen Zeigerarithmetik vorprogrammiert, aber das ist bei Java nicht der Fall. Daher mag es für einige ein wenig schockierend klingen, dass die Java-Sprache kein Konzept von Zeigern hat.
Stattdessen hat die Java-Sprache Referenzen als Zeiger. Denken Sie daran, dass die Zeiger als Referenzen bezeichnet werden können, aber umgekehrt ist es nicht dasselbe, da Referenzen keine Zeiger sind.
Sehen wir uns dieses Konzept anhand von Beispielen weiter unten in diesem Handbuch genauer an.
Kein Zeiger in Java
Die Mehrheit behauptet, dass Java ohne Zeiger besser dran ist. Dies aus den unten genannten Gründen.
-
Arithmetik – Wie oben erwähnt, verwenden Zeiger Arithmetik, um zu arbeiten. Außerdem arbeitet ein Zeiger mit Speicherverwaltung, was grundsätzlich unsicher ist.
Viele würden anders argumentieren, aber es ist tatsächlich unsicher, Zeigern Zugriff auf den Speicher zu gewähren. Aus diesem Grund unterstützt Java keine Zeigerarithmetik. Und es wird kein zusätzlicher Speicher verwendet.
-
Manipulation – Benutzer können einen Zeiger leicht missbrauchen; Die Manipulation eines Objekts durch einen Zeiger ist ebenfalls sehr riskant. Alles in allem benötigt Java in seiner objektorientierten Programmierung keine Zeiger.
Außerdem würde das Hinzufügen eines Zeigers in der Java-Sprache die Komplexität unnötig erhöhen.
Alternative: Referenzen in Java-Sprache
Wie oben erwähnt, ist das Konzept der Zeiger in Java nicht verfügbar. Anstelle von Zeigern werden also Referenzen verwendet, da sie genauso funktionieren wie Zeiger.
Der Begriff Zeiger bezieht sich auf die Sprachen C und C++. In Java können wir keine Zeiger verwenden, daher wird eine alternative Methode namens Referenzen verwendet. Wie bereits erwähnt, funktionieren Referenzen genauso wie ein Zeiger, aber ihre Verwendung ist etwas anders.
Wenn eine Referenz verwendet wird, geschieht dies mit einer Funktion. Die Kopie einer Referenz wird in den Stack der Funktion kopiert, die zum Aufrufen eines Objekts verwendet wird, und ermöglicht die gewünschte Manipulation des Objekts.
Auch wenn Benutzer einen Zeiger verwenden möchten, steht es ihnen frei, Referenzen zu verwenden. Hier ist ein Beispiel, das die Verwendung von Reference in Java erklärt.
class Shape {
int length;
int breadth;
}
public class ShapesUse {
public static void main(String args[]) {
/*
Here, an example1 is used as a reference variable.
Which means it holds the address of the Shapes object
*/
Shape example1 = new Shape();
/*
example2 is another reference variable used,
and example2 is initialized with example1
example1 and example2 reference the same object,
so no duplication and extra memory are used.
*/
Shape example2 = example1;
example1.length = 10;
example2.breadth = 26;
System.out.println("length of example 1 is: " + example1.length);
System.out.println("breath of example 1 is: " + example2.breadth);
}
}
In diesem Beispiel werden Beispiel1
und Beispiel2
als Referenzen verwendet. Das liegt daran, dass sie die Adresse des Objekts Form
enthalten und durch dieses Objekt Länge
und Breite
aufgerufen werden.
Denken Sie daran, dass wir diese Referenzen nicht außerhalb dieses Programms verwenden können. Es folgt die Ausgabe des obigen Codes. Wie wir sehen können, funktionieren die Referenzen wie gewünscht.
Ausgang:
length of example 1 is: 10
breath of example 1 is: 26
Nachteile der Verwendung von Referenzen als Zeiger in Java
Sehen wir uns einige Nachteile an, die es mit sich bringt, keinen Zeiger in der Java-Sprache zu haben.
-
Explizite Verwendung – Obwohl Verweise als Zeiger verwendet werden können, gibt es einen Nachteil. Referenzen können wir nicht explizit verwenden. Wir können diese Zeiger nicht außerhalb des Bereichs des Java-Programms verwenden.
Jede Aktion, die unter Verwendung von Referenzen ausgeführt wird, ist implizit, sodass sie nicht sichtbar sind. Es ist ein ziemlicher Nachteil, da Zeiger verwendet werden, um auf die Ressourcen zuzugreifen, was wir explizit tun können.
In der C-Programmierung können wir die Adresse eines Zeigers subtrahieren oder addieren, um auf Dinge zu zeigen. In Java kann eine Referenz jedoch nur auf eine Sache zeigen.
-
Streng kontrolliert – Referenzen werden viel strenger kontrolliert als C oder C++. Leider bedeutet dies, dass Type Casting nicht verfügbar ist.
In Zeigern können wir jedoch zum Beispiel
int
inchar
umwandeln. Aber in Java können Verweise nur auf ein Objekt des gleichen Typs zeigen. So können wir beispielsweise für ein Objekt vom Typstring
nur einestring
-Referenz verwenden.
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn