Différence entre les types de données Long et Int en Java
-
Les types de données
int
etlong
en Java -
Les classes Wrapper
Integer
etLong
en Java -
Différences entre
int
etInteger
Etlong
etLong
en Java
Cet article discutera des différences entre les types de données int
et long
en Java et expliquera les classes wrapper Integer
et long
. Nous comprendrons les différences entre ces types de données et les classes wrapper et pourrons décider lequel utiliser en fonction du scénario.
Les types de données int
et long
en Java
Le type de données int
est un type de données primitif en Java qui stocke un nombre entier. Cela signifie que int
spécifie la taille et le type de la valeur de la variable. Mais, il ne peut appeler aucune méthode. La taille de int
est de 4 octets. Il peut stocker les valeurs de -2,147,483,648
à 2,147,483,647
.
Le type de données long
est également un autre type de données primitif en Java avec 8 octets. Il a une plage plus large que int
pour stocker un nombre entier. Le type de données long
est utilisé pour contenir le plus grand nombre entier que int
ne peut pas contenir. Il peut stocker les valeurs de -9,223,372,036,854,775,808
à 9,223,372,036,854,775,807
.
Par exemple, créez une variable num1
avec le type de données int
et le num3
avec le type de données long
. Attribuez une valeur de 100
à num1
et 150000000000L
à num3
. Imprimez les variables dans la console. Encore une fois, créez une autre variable, num2
avec le même type de données, et attribuez une valeur de 2147483648
. Ensuite, imprimez la variable num2
. Notez que ces lignes de code doivent être écrites dans la méthode main à l’intérieur d’une classe.
Le premier exemple de code s’exécute avec succès, mais le deuxième exemple rencontre une erreur. C’est parce que la valeur 2147483648
dépasse la plage pour le type de données int
. Nous écrivons L
après la valeur du type de données long
pour désigner une valeur long
.
Exemple de code :
int num1 = 100;
long num3 = 15000000000L;
System.out.println(num1);
System.out.println(num3);
Production:
100 15000000000
Exemple de code :
int num2 = 2147483648;
System.out.println(num2);
Production:
Main.java:3: error: integer number too large
int num2 = 2147483648;
^
1 error
Les classes Wrapper Integer
et Long
en Java
Une classe wrapper est un type spécifique de classe dont les objets peuvent stocker les types de données primitifs. Nous discuterons des classes wrapper Integer
et Long
. Nous pouvons créer l’objet wrapper à partir de la classe wrapper, et cela nous permet d’utiliser différentes méthodes associées à l’objet.
Par exemple, créez l’objet myInt
d’une classe wrapper Integer
et attribuez une valeur de 50
. Créez un autre objet myLong
à partir de la classe wrapper Long
et attribuez une valeur 326162165161616161
. Imprimez les variables myInt
et myLong
. Créez ensuite, deux objets de la classe wrapper String
comme myString1
et myString2
. Utilisez la méthode toString()
avec chacun des objets myInt
et myLong
. Enfin, imprimez la longueur des objets myString1
et myString2
appelant la méthode length()
.
Dans l’exemple ci-dessous, nous avons créé des objets à partir des classes wrapper Integer
, Long
et String
. Nous avons appelé les méthodes comme toString()
et length()
avec les objets. La méthode toString()
convertit les valeurs en chaîne, et nous pouvons utiliser la méthode length()
pour calculer leur longueur. Si nous essayons d’accéder à ces méthodes à partir du type de données primitif, nous ne pouvons pas le faire. Ainsi, les classes wrapper nous permettent de créer les objets wrapper pour utiliser les méthodes pour diverses opérations.
Exemple de code :
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());
Production:
50
326162165161616161
2
18
Différences entre int
et Integer
Et long
et Long
en Java
La principale différence entre int
ou long
et Integer
et long
est que les types de données sont des types primitifs tandis que les classes wrapper sont des types non primitifs. Un type de données primitif contient une valeur spécifique, tandis que les objets de la classe wrapper ne sont que des pointeurs vers l’emplacement des données stockées.
Integer myInt = new Integer(5);
int num = 5
L’objet myInt
ci-dessus n’est qu’un pointeur vers l’emplacement des données 5
. La mémoire où est stocké l’objet myInt
contient l’adresse mémoire de l’emplacement de la valeur 5
. Il s’agit uniquement d’une référence à l’emplacement de la valeur. Pendant ce temps, la mémoire où est stockée la variable num
contient la valeur 5
.
Ce concept peut être visualisé avec la valeur null
. Nous pouvons définir l’objet myInt
avec une valeur nulle, mais nous ne pouvons pas faire la même chose avec la variable num
. Un objet peut faire référence à une adresse nulle car les objets sont des types référence. Le type de données int
ne peut pas contenir de valeur nulle car int
est primitif et ne peut pas faire référence. Ainsi, lorsque nous affectons null
à un objet, il sort comme null, mais lorsque nous l’affectons à un type int
, une erreur sera générée.
Exemple de code :
Integer myInt = null;
System.out.println(myInt);
Production:
null
Exemple de code :
int num = null;
System.out.println(myInt);
Production:
Main.java:6: error: incompatible types: <null> cannot be converted to int
int num = null;
^
1 error
Article connexe - Java Long
- Créer Unsigned Long en Java
- Convertir long en double en Java
- Comment convertir une chaîne de chaîne en long en Java