Java >> Tutoriel Java >  >> Java

Les 8 types primitifs en Java

Alors que je commençais à éditer ma série Java Basics d'il y a quelques années, j'ai pensé qu'il serait logique de commencer à extraire des informations très détaillées dans leurs propres articles. De cette façon, le contenu pour débutant est beaucoup plus facile à digérer. Pour commencer, je récupère toutes les informations dont je dispose sur les 8 types primitifs de Java.

Types de primitives Java

Comme le titre de cet article le suggère, Java a 8 types primitifs intégrés au langage. Dans les sous-sections suivantes, nous examinerons les huit types primitifs sans ordre particulier. Pour chaque type primitif, nous décrirons comment l'utiliser et quelles sont ses limites.

Le type primitif Int

Pour commencer, les entiers Java sont des valeurs signées 32 bits (c'est-à-dire positives ou négatives), et ils sont désignés par le int mot-clé :

int someNumber = 10;

Bien sûr, comme tous les types primitifs, les entiers ont leurs limites. Puisqu'ils sont 32 bits, nous examinons une plage de valeurs allant de -2 147 483 648 à 2 147 483 647. Cela fait beaucoup de chiffres ! Bien sûr, nous pouvons confirmer cette plage en utilisant une astuce pratique dans le volet des interactions de DrJava :

Integer.MAX_VALUE // Prints 2,147,483,647
Integer.MIN_VALUE // Prints -2,147,483,648

Naturellement, int est probablement le type entier le plus couramment utilisé pour les calculs simples. Si vous avez besoin de plus de portée, voir long ci-dessous.

Le type double primitif

Contrairement à int , les doublons Java sont des valeurs à virgule flottante 64 bits et ils sont marqués par le double mot-clé :

double someNumber = 110.55;

Pour rappel, les nombres à virgule flottante ne sont que des nombres réels. En d'autres termes, nous accédons aux décimales lorsque nous utilisons des doubles.

Puisque les doubles sont en 64 bits, nous avons accès à beaucoup plus de nombres qu'avec des entiers. Si nous utilisons la même astuce du volet d'interactions, nous pouvons découvrir à quel point la plage de valeurs potentielles est massive :

Double.MAX_VALUE // Prints 1.7976931348623157E308
Double.MIN_VALUE // Prints 4.9E-324

Gardez à l'esprit que les exposants négatifs impliquent des nombres extrêmement petits, par opposition aux nombres extrêmement négatifs. Nous n'examinons donc pas exactement le même type de plage qu'avec les nombres entiers.

En général, double est le choix par défaut pour les valeurs à virgule flottante en Java. L'alternative est float .

Le type primitif Char

Comme nous l'avons déjà vu, les caractères Java représentent des caractères 16 bits, et ils sont marqués par le char mot-clé :

char someCharacter = 'f';

Tous les caractères en Java sont définis à l'aide de guillemets simples. Pendant ce temps, les guillemets doubles sont utilisés pour définir les chaînes, dont nous parlerons plus tard.

Comme d'habitude, nous pouvons connaître la plage de caractères à l'aide de l'extrait de code suivant :

Character.MAX_VALUE // Prints '???' 
Character.MIN_VALUE // Prints ''

Pour donner un sens à cette plage, nous pouvons toujours convertir les résultats en un entier (nous en reparlerons plus tard) :

(int) Character.MAX_VALUE // Prints 65535
(int) Character.MIN_VALUE // Prints 0

Il s'avère que le char type est le seul type non signé en Java. En d'autres termes, un caractère peut aller de 0 à 65 535 où chaque numéro correspond à un caractère spécifique. Afin de créer des caractères au-delà de cette liste, Java peut combiner des paires de caractères. Découvrez Inverser une chaîne en Java pour quelques exemples.

Le type primitif d'octet

Lorsque nous parlions de binaire, nous avons parlé du concept de bit. Eh bien, un groupe de huit bits constitue un octet que Java prend en charge en tant que type primitif. Le byte type est essentiellement juste un nombre de 8 bits qui va de -128 à 127. Comme prévu, les octets sont désignés par le byte mot-clé :

byte someByte = 20;

Comme toujours, nous pouvons confirmer la portée d'un byte tapez en utilisant l'extrait de code suivant :

Byte.MAX_VALUE // Prints 127
Byte.MIN_VALUE // Prints -128

D'après mon expérience, le byte type est utile pour lire et traiter des données brutes. En général, cependant, nous n'en aurons probablement aucune utilité car la plage de valeurs potentielles est si petite.

Le type primitif court

Le short type est un autre type entier, mais il prend moins de place que le type int. En fait, il occupe exactement la moitié de l'espace à 16 bits, et il est marqué par le short mot-clé :

short someNumber = 11;

En termes de portée, le short tapez les horloges à seulement la moitié des bits sous forme d'entier, mais nous pouvons le confirmer comme d'habitude :

Short.MAX_VALUE // Prints 32767
Short.MIN_VALUE // Prints -32768

Pour des raisons pratiques, un short n'a que 65 546 valeurs possibles. Les deux byte et short sont généralement utilisés lorsque la mémoire et l'espace disque sont faibles. Sinon, il est prudent d'utiliser int car c'est le type par défaut lors de la déclaration d'entiers.

Le type primitif long

À l'autre extrémité du spectre se trouve le long genre primitif. Ce type représente des entiers extrêmement grands où nous pourrions vouloir des valeurs encore plus grandes que le int type peut fournir. Le long type est un entier signé 64 bits, ce qui signifie que les valeurs se situent dans les quintillions.

Naturellement, nous notons longs avec le long mot-clé :

long someBigNumber = 1013401346173L;

Pour montrer à quel point une valeur 64 bits peut être étendue, examinons l'extrait de code suivant :

Long.MAX_VALUE // Prints 9,223,372,036,854,775,807
Long.MIN_VALUE // Prints -9,223,372,036,854,775,808

Peut-être un long serait utile pour calculer la distance parcourue par la lumière dans un laps de temps donné. Au bout d'une seconde, la lumière parcourt environ 300 millions de mètres. Si nous écrivions un programme pour suivre la distance de la lumière en temps réel, le type int se terminerait après environ 7 secondes tandis qu'un long pourrait calculer jusqu'à environ 975 ans. Vous ne me croyez pas ? Consultez ce Gist qui parcourt l'ensemble du calcul.

Le type primitif flottant

Alors que nous utilisons souvent le double qui est un type de nombre à virgule flottante 64 bits, Java prend en charge un autre type de nombre à virgule flottante appelé float . Comme int , cependant, Java par défaut est double pour les valeurs à virgule flottante. Dans tous les cas, nous pouvons désigner un nombre à virgule flottante de 32 bits en utilisant le float mot-clé :

float someNumber = 11.4f;

Pour avoir une idée de la portée d'un float , réutilisons notre astuce :

Float.MAX_VALUE // Prints 3.4028235E38
Float.MIN_VALUE // Prints 1.4E-45

Comme nous pouvons le voir, 32 bits réduisent vraiment notre portée et notre précision. Si nous voulons utiliser une valeur décimale avec moins de précision que double en utilisant la moitié de l'espace, le float type est une option.

Le type primitif booléen

Enfin, nous pouvons couvrir le boolean taper. Pour déclarer un boolean , nous pouvons utiliser le boolean mot-clé :

boolean isBool = true;

Les booléens sont un peu uniques car ils ne représentent pas des valeurs numériques comme tous les autres types primitifs. En fait, notre petit MAX_VALUE et MIN_VALUE l'astuce ne fonctionnera pas ici. Au lieu de cela, les booléens représentent true ou false que nous pourrions rappeler de la leçon précédente sur la logique.

Nous n'y consacrerons pas beaucoup de temps maintenant car cela fera partie de presque tout ce que nous faisons en Java. Cela dit, nous ne les déclarerons souvent pas explicitement comme ça. Au lieu de cela, ils sont le résultat de comparaisons qui pilotent la logique dans le code. Consultez la section des opérateurs booléens ci-dessous pour plus d'informations.

Vous voulez en savoir plus ?

Comme mentionné précédemment, ces informations pouvaient être trouvées précédemment dans l'article Types primitifs et variables en Java. Bien sûr, maintenant cet article est beaucoup plus facile à lire.

Si vous avez aimé cet article et que vous en voulez plus, devenez membre de The Renegade Coder. L'adhésion est un excellent moyen de montrer votre soutien, et cela contribue grandement à garantir que ce contenu reste gratuit pour le public.

En tout cas merci encore pour votre soutien. A la prochaine !


Balise Java