« Précédent

La syntax Java

Les types primitifs

Tout d'abord, Java a une typage fort. Contrairement à javascript ou php, Java doit savoir quel est le type de la variable déclarée. C'est pourquoi, il existe 8 type de base. Ces type sont dit primitifs.

Type Occupation mémoire (bits) Utilisation Valeurs mini, maxi
byte 8 Entier signé
short 16 Entier signé
int 32 Entier signé
long 64 Entier signé
float 32 Réel 7 chiffres significatifs
double 64 Réel 15 chiffres significatifs
char 16 Caractère Unicode
boolean 1 Booléen (vrai, faux) True, false

Pour éviter d'être trop long, je ne vais pas détailler ces types. Sachez néanmoins que chacun a son utilité.

Conversions de types

Dans certains cas, il est nécessaire de convertir un type de variable en un autre type.

Par exemple, il peut être nécessaire de transmettre une variable de type int à une fonction qui n’accepte que des variables de type float .

Convertir le type d’une variable s’appelle transtypage, ou cast en anglais.

Pour transtyper une variable, il suffit de faire précéder l’identificateur de la variable du type voulu entre parenthèses. L’exemple suivant montre comment la variable nx, de type int, peut être transtypée en type float :

int nx = 3 ;
float df = (float) nx ;

Les transtypages sont des opérations délicates, car il y a des risques de perte d’informations. Par exemple, lors d’un transtypage d’une variable de type long de 64 bits en une variable de type int de 32 bits, le compilateur ignore les 32 bits de poids fort de la variable de type long. Si la valeur de la variable de type long dépasse 32 bits au moment du transtypage, le transtypage attribue une valeur inexacte à la variable de type int.

En règle générale, le type cible du transtypage doit avoir une taille au moins égale au type initial. Le tableau suivant montre les transtypages qui ne risquent pas de provoquer des pertes d’informations :

Type initial Transtypage
byte short, char , int, long, float, double
short int, long , float, double
char int, long , float, double
int long, float , double
Long float, double
Float double

Transtypage implicite

Dans certains cas, un transtypage peut être réalisé implicitement par le compilateur. Voici un exemple :

int nx = 0x41; // notation héxa pour la valeur 65 (code ASCII de 'A')
if (nx > 'a')
{
…
}

Dans ce cas, la valeur 'a' est convertie en nombre entier (valeur ASCII de la lettre a) avant d’être comparée au nombre 65 .

Les objets et Wrappers

Java est nativement un langage Objet. De ce fait, il existe aussi des types objets comme par exemple la chaine de caractère String. Ces types se caractérise déjà par la façon dont on les nommes. Tous types objet a une majuscule. De plus, mais nous le verrons par la suite, un objet détient des méthodes (fonctions).

exemple:

String mot = "java";
String motMaj = mot.toUpperCase(); // donne JAVA

De même, les types primitifs ont un équivalent objet que l'on appelle "wrapper".

Type Primitif Wrapper
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Char
boolean Boolean