Les primitives

Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes.

Toutefois ces objets contiennent des données possèdant un type (et une représentation). Ces données sont un ensemble d'éléments stockés en mémoire et baptisés pour l'occasion primitives. Les données manipulées avec Java, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le nombre d'octets) de la donnée ainsi que sa représentation, cela peut être entre autres:

De plus, la langage Java introduit un type de donnée appelée boolean. Ce type de variable accepte deux états:

Etant donné que ce type de donnée est codée sur 8 bits (un octet), 7 de ces bits ne servent à rien, puisqu'une variable de ce type ne peut prendre que deux états. En réalité, toutes les valeurs différentes de zéro sont considérées comme vraies (donc considérées comme égales à 1).

Voici un tableau répertoriant les primitives (types de données) de Java:

 

Primitive Signification Taille (en octets) Plage de valeurs acceptée
char Caractère 2 valeur du jeu de caractères Unicode (65000 caractères possibles)
byte Entier très court 1 -128 à 127
short Entier court 2 -32768 à 32767
int Entier 4 -2 147 483 648 à 2 147 483 647
long Entier long 8 -9223372036854775808 à 9223372036854775807
float flottant (réel) 4 -1.4*10-45 à 3.4*1038
double flottant double 8 4.9*10-324 à 1.7*10308
boolean booléen 1 0 ou 1 (en réalité, toute autre valeur
que 0 est considérée égale à 1)

 

Les enveloppeurs (Wrappers)

Les primitives peuvent être "enveloppées" dans un objet provenant d'une classe prévue à cet effet et appelée Wrapper (mot anglais signifiant enveloppeur). Les enveloppeurs sont donc des objets pouvant contenir une primitive et auxquels sont associés des méthodes permettant de les manipuler.

Voici la liste des enveloppeurs disponibles avec Java:

 

Enveloppeur Primitive associée
BigDecimal aucune primitive associée, car cette classe peut contenir des valeurs décimales de précision quelconque
BigInteger aucune primitive associée, car cette classe peut contenir des valeurs entières de précision quelconque
Character char
Character char
Byte byte
Short short
Integer int
Long long
Float float
Double double
Boolean boolean
Void void

 

Nombre entier (int)

Un nombre entier est un nombre sans virgule qui peut être exprimé dans différentes bases:

Les entiers sont signés par défaut, cela signifie qu'ils comportent un signe. Pour stocker l'information concernant le signe (en binaire), les ordinateurs utilisent le complément à deux

 

Nombre à virgule (float)

Un nombre à virgule flottante est un nombre à virgule, il peut toutefois être représenté de différentes façons:

En réalité, les nombres réels sont des nombres à virgule flottante, c'est-à-dire un nombre dans lequel la position de la virgule n'est pas fixe, et est repérée par une partie de ses bits (appelée l'exposant), le reste des bits permettent de coder le nombre sans virgule (la mantisse).

Les nombres de type float sont codés sur 32 bits dont:

Les nombres de type double sont codés sur 64 bits dont:

La précision des nombres réels est approchée. Elle dépend par le nombre de positions décimales, suivant le type de réel elle sera au moins:

 

Caractère (char)

 

Le type char (provenant de l'anglais character) permet de stocker la valeur Unicode, codée sur 16 bits, d'un caractère, c'est-à-dire un nombre entier codé sur 16 bits, soit 65000 caractères !
Par conséquent il est possible de stocker un caractère accentué dans une variable de type char.

Si jamais on désire par exemple stocker la lettre B, on pourra définir cette donnée soit par son code Unicode (\u0066), soit en notant 'B' ou les apostrophes simples signifient code ascii de...

 

Chaînes de caractère (String)

Les chaînes de caractères ne correspondent pas à un type de données mais à une classe, ce qui signifie qu'une chaîne de caractère est un objet possèdant des attributs et des méthodes. Une chaîne peut donc être déclarée de la façon suivante:

  

String s = "Chaine de caractères";

 

Conversion de type de données (casting)

On appelle conversion de type de données, parfois moulage (traduction de l'anglais casting), cast ou transtypage, le fait de modifier le type d'une donnée en une autre. Il peut arriver par exemple que l'on veuille travailler sur un type de variable, puis l'utiliser sous un autre type. Imaginons que l'on travaille par exemple sur une variable en virgule flottante (type float), il se peut que l'on veuille "supprimer les chiffres après la virgule", c'est-à-dire convertir un float en int. Cette opération peut être réalisée de deux manières: