Différence entre les types de données Long et Int en Java

Bishal Awasthi 12 octobre 2023
  1. Les types de données int et long en Java
  2. Les classes Wrapper Integer et Long en Java
  3. Différences entre int et Integer Et long et Long en Java
Différence entre les types de données Long et Int 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

Article connexe - Java Integer