Unterschied zwischen Long- und Int-Datentypen in Java
-
Die Datentypen
int
undlong
in Java -
Die Wrapper-Klassen
Integer
undLong
in Java -
Unterschiede zwischen
int
undInteger
undlong
undLong
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
- Unsigned Long in Java erstellen
- Konvertieren long in double in Java
- Wie man eine Zeichenkette in Java in eine lange Zeichenkette konvertiert