Unterschied zwischen Long- und Int-Datentypen in Java

Bishal Awasthi 12 Oktober 2023
  1. Die Datentypen int und long in Java
  2. Die Wrapper-Klassen Integer und Long in Java
  3. Unterschiede zwischen int und Integer und long und Long in Java
Unterschied zwischen Long- und Int-Datentypen in Java

Dieser Artikel diskutiert die Unterschiede zwischen den Datentypen int und long in Java und erklärt die Wrapper-Klassen Integer und Long. Wir werden die Unterschiede zwischen diesen Datentypen und den Wrapperklassen verstehen und können je nach Szenario entscheiden, welche verwendet werden soll.

Die Datentypen int und long in Java

Der Datentyp int ist ein primitiver Datentyp in Java, der eine ganze Zahl speichert. Das bedeutet, dass int die Grösse und den Typ des Variablenwertes angibt. Es kann jedoch keine Methoden aufrufen. Die Größe von int beträgt 4 Byte. Es kann die Werte von -2,147,483,648 bis 2,147,483,647 speichern.

Der Datentyp long ist ebenfalls ein primitiver Datentyp in Java mit 8 Byte. Es hat einen größeren Bereich als int, um eine ganze Zahl zu speichern. Der Datentyp long wird verwendet, um die grössere ganze Zahl aufzunehmen, die int nicht aufnehmen kann. Es kann die Werte von -9,223,372,036,854,775,808 bis 9,223,372,036,854,775,807 speichern.

Erstellen Sie beispielsweise eine Variable num1 mit dem Datentyp int und die Variable num3 mit dem Datentyp long. Weisen Sie num1 den Wert 100 und num3 den Wert 15000000000L zu. Drucken Sie die Variablen in der Konsole. Erstellen Sie wieder eine weitere Variable num2 mit demselben Datentyp und weisen Sie den Wert 2147483648 zu. Geben Sie dann die Variable num2 aus. Beachten Sie, dass diese Codezeilen in die main-Methode innerhalb einer Klasse geschrieben werden sollten.

Das erste Codebeispiel wird erfolgreich ausgeführt, aber das zweite Beispiel führt zu einem Fehler. Dies liegt daran, dass der Wert 2147483648 den Bereich für den Datentyp int überschreitet. Wir schreiben L nach dem Wert des long-Datentyps, um einen long-Wert anzugeben.

Beispielcode:

int num1 = 100;
long num3 = 15000000000L;
System.out.println(num1);
System.out.println(num3);

Ausgabe:

100 15000000000

Beispielcode:

int num2 = 2147483648;
System.out.println(num2);

Ausgabe:

Main.java:3: error: integer number too large
 int num2 = 2147483648;
 ^
1 error

Die Wrapper-Klassen Integer und Long in Java

Eine Wrapper-Klasse ist ein bestimmter Klassentyp, dessen Objekte die primitiven Datentypen speichern können. Wir werden die Wrapper-Klassen Integer und Long besprechen. Wir können das Wrapper-Objekt aus der Wrapper-Klasse erstellen und können verschiedene Methoden verwenden, die dem Objekt zugeordnet sind.

Erstellen Sie beispielsweise das Objekt myInt einer Wrapper-Klasse Integer und weisen Sie den Wert 50 zu. Erstellen Sie ein weiteres Objekt myLong aus der Wrapper-Klasse Long und weisen Sie einen Wert 326162165161616161 zu. Drucken Sie die Variablen myInt und myLong aus. Erstellen Sie dann zwei Objekte der Wrapper-Klasse String als myString1 und myString2. Verwenden Sie die Methode toString() mit jedem der myInt- und myLong-Objekte. Geben Sie zum Schluss die Länge der Objekte myString1 und myString2 aus, indem Sie die Methode length() aufrufen.

Im folgenden Beispiel haben wir Objekte aus den Wrapper-Klassen Integer, Long und String erstellt. Wir haben die Methoden wie toString() und length() mit den Objekten aufgerufen. Die Methode toString() wandelt die Werte in einen String um, und wir können mit der Methode length() ihre Länge berechnen. Wenn wir versuchen, auf diese Methoden vom primitiven Datentyp aus zuzugreifen, können wir dies nicht tun. Wrapper-Klassen ermöglichen es uns daher, die Wrapper-Objekte zu erstellen, um die Methoden für verschiedene Operationen zu verwenden.

Beispielcode:

Integer myInt = 50;
Long myLong = 326162165161616161L;

System.out.println(myInt);
System.out.println(myLong);

String myString1 = myInt.toString();
System.out.println(myString1.length());

String myString2 = myLong.toString();
System.out.println(myString2.length());

Ausgabe:

50
326162165161616161
2
18

Unterschiede zwischen int und Integer und long und Long in Java

Der Hauptunterschied zwischen int oder long und Integer und Long besteht darin, dass die Datentypen primitive Typen sind, während die Wrapper-Klassen nicht-primitive Typen sind. Ein primitiver Datentyp enthält einen bestimmten Wert, während die Objekte der Wrapper-Klasse nur die Zeiger auf die Position der gespeicherten Daten sind.

Integer myInt = new Integer(5);
int num = 5

Das obige myInt-Objekt ist nur ein Zeiger auf den Ort der Daten 5. Der Speicher, in dem das Objekt myInt abgelegt wird, enthält die Speicheradresse des Wertes 5. Es ist nur ein Hinweis auf die Position des Wertes. Währenddessen enthält der Speicher, in dem die Variable num gespeichert ist, den Wert 5.

Dieses Konzept kann mit dem Wert null visualisiert werden. Wir können das Objekt myInt mit einem Nullwert setzen, aber nicht dasselbe mit der Variablen num. Ein Objekt kann auf eine Nulladresse verweisen, da Objekte Referenztypen sind. Der Datentyp int darf keinen Nullwert enthalten, da int primitiv ist und nicht referenzieren kann. Wenn wir also einem Objekt null zuweisen, wird es als null ausgegeben, aber wenn wir es einem int-Typ zuweisen, wird ein Fehler ausgegeben.

Beispielcode:

Integer myInt = null;
System.out.println(myInt);

Ausgabe:

null

Beispielcode:

int num = null;
System.out.println(myInt);

Ausgabe:

Main.java:6: error: incompatible types: <null> cannot be converted to int
int num = null;
 ^
1 error

Verwandter Artikel - Java Long

Verwandter Artikel - Java Integer