Programmation Java/Types de base

Un livre de Wikilivres.
Aller à : navigation, rechercher


Liste[modifier | modifier le wikicode]

Les types de base ou types primitifs de Java sont listés dans le tableau suivant :

Remarques :

  • Une constante numérique de type entier est considérée comme étant de type int. Il faut ajouter le suffixe L pour avoir une constante de type long.
  • Une constante numérique de type décimal est considérée comme étant de type double. Il faut ajouter le suffixe F pour avoir une constante de type float. Il existe également un suffixe D pour double mais son utilisation est optionnelle.
  • String est le seul type non-primitif (donc absent du tableau) dont les instances possèdent une syntaxe littérale :
    "caractères..."
Types primitifs de Java
Type Taille Syntaxe Description Intervalle
char 2 octets
16 bits
'caractère' Une unité de code, suffisant à représenter un grand nombre de point de code, et même un caractère Unicode (UTF-16)
'b' '\u250C'
'\u0000' à '\uFFFF'
byte 1 octet
8 bits
Un nombre entier de 8 bits (soit un octet) signé -128 à 127
short 2 octets
16 bits
Un nombre entier de 16 bits signé entre -32 768 et +32 767 -32768 à 32767
int 4 octets
32 bits
[+|-]chiffres... Un nombre entier de 32 bits signé entre -2 147 483 648 et +2 147 483 647 -2147483648 à 2147483647
long 8 octets
64 bits
[+|-]chiffres...L Un nombre entier de 64 bits signé entre -9 223 372 036 854 775 808 et +9 223 372 036 854 775 807 -9223372036854775808L à 9223372036854775807L
float 4 octets
32 bits
[+|-][chiffres].[chiffres][E[+|-]chiffres]F Un nombre à virgule flottante de 32 bits signé (simple précision)
  • de (Float.MIN_VALUE) à (Float.MAX_VALUE),
  • 0.0F,
  • (Float.NEGATIVE_INFINITY),
  • (Float.POSITIVE_INFINITY),
  • pas un nombre (Float.NaN).
double 8 octets
64 bits
[+|-][chiffres].[chiffres][E[+|-]chiffres][D] Un nombre à virgule flottante de 64 bits signé (double précision)
  • de (Double.MIN_VALUE) à (Double.MAX_VALUE),
  • 0.0D,
  • (Double.NEGATIVE_INFINITY),
  • (Double.POSITIVE_INFINITY),
  • pas un nombre (Double.NaN).
boolean 1 octet false|true Une valeur logique false (faux) ou true (vrai)

Consultez également ces pages dans d’autres projets Wikimedia :

Connaissances universitaires sur Wikiversité.


Caractères pour char et String[modifier | modifier le wikicode]

Les caractères spéciaux suivants peuvent être utilisés pour les valeurs littérales des types char et String :

\r (ou \u000D)
Retour chariot (carriage Return),
\n (ou \u000A)
Nouvelle ligne (New line),
\f (ou \u000C)
Nouvelle page (Feed page),
\b (ou \u000C)
Retour arrière (Backspace),
\t (ou \u0009)
Tabulation (Tab),
\"
Guillemet (pour qu'il soit inclus au lieu de marquer la fin de la chaîne de caractères),
\'
Apostrophe (pour qu'il soit inclus au lieu de marquer la fin du caractère),
\OOO
Caractère 8 bits dont le code OOO est spécifié en octal (jusqu'à 3 chiffres),
\xXX
Caractère 8 bits dont le code XX est spécifié en hexadécimal (jusqu'à 2 chiffres),
\uXXXX
Caractère 16 bits (UTF-16) dont le code XXXX est spécifié en hexadécimal (jusqu'à 4 chiffres).
Cette séquence d'échappement peut également être utilisée en dehors des chaînes et caractères dans le code source :
\u0070ublic \u0063lass UneClasse ... /* <- public class UneClasse ... */
Cette fonctionnalité du langage est cependant à réserver au cas d'utilisation de code Java externe où les identificateurs de classe, attributs ou méthodes utilisent des caractères non supportés (par exemple, en Japonais) par le clavier du développeur.

Variables et classes[modifier | modifier le wikicode]

Les classes de base comme String ne sont pas des variables primitives, il est aisé de les confondre mais les conventions habituelles d'écriture permettent de distinguer les deux types de données. Les types de variables primitives sont toujours écrits en minuscules, par contre les noms des classes ont en principe leur premier caractère en majuscule. Aussi lorsque vous rencontrez un Boolean, ce n'est pas un type de base mais bien une classe. En effet les variables primitives peuvent être encapsulées, et Java fournit d'ailleurs pour tous les types primitifs des classes d'encapsulation appelées wrappers.

Ceci peut être utile dans certains cas pour bénéficier de certaines caractéristiques de leur classe mère Object. Par exemple, la pose d'un verrou de synchronisation (instruction synchronized) ne peut se faire que sur un objet.

Les emballages de types primitifs[modifier | modifier le wikicode]

Une classe d'emballage (wrapper en anglais) permet d'englober une valeur d'un type primitif dans un objet. La valeur est stockée sous la forme d'un attribut. Chaque classe permet de manipuler la valeur à travers des méthodes (conversions, ...).

  • Character pour char
  • Byte pour byte
  • Short pour short
  • Long pour long
  • Integer pour int
  • Float pour float
  • Double pour double
  • Boolean pour boolean

Conversions[modifier | modifier le wikicode]

Pour convertir une variable x du type de la première ligne vers celui de chaque colonne :

Variables Integer Float Double String Array
Integer - (float)x (double)x x.toString() new int[] {x}
Float java.text.DecimalFormat("#").format(x) - (double)x
x.doubleValue()
x.toString()
Float.toString(x)
new float[] {x}
Double java.text.DecimalFormat("#").format(x) java.text.DecimalFormat("#").format(x) - x.toString() new double[] {x}
String Integer.parseInt(x) Float.parseFloat(x) Double.parseDouble(x) - new String[] {x}
Array x[0] x[0] x[0] Arrays.toString(x) -