byte
,
short
,
int
,
long
;
char
;
boolean
;
float
et
double
.
int
, la machine Java nous donne en retour une zone mémoire de 4 octets, qui peut contenir un
int
. L’opérateur d’affectation recopie la valeur de la variable cible dans la variable destination. Prenons un exemple :
int i, j ; i = 0 ; j = i ; i = 1 ;On a bien, à l’issue de cette série d’instructions
j = 0
et
i = 1
.
Les caractéristiques des types de base sont résumées dans le tableau suivant.
Tableau 1. Types de base en Java
Type de base | Type | Nombre de bits | Valeurs possibles |
---|---|---|---|
boolean | booléen | 32 (effectifs) |
true et
false
|
byte | entier | 8 | signées |
short | entier | 16 | signées |
int | entier | 32 | signées |
long | entier | 64 | signées |
float | virgule flottante | 32 | IEEE 754 |
double | virgule flottante | 64 | IEEE 754 |
char | caractère | 16 | Unicode |
false
et les caractères à
'\0'
avant d'être utilisés par une application.
Par conséquent, le programme suivant affichera toujours 1.
public class Main { private static int i ; public static void main(String [] args) { System.out.println("i + 1 = " + (i + 1)) ; } }
int i ;
, la machine Java nous donne une zone mémoire, en l'occurrence de 4 octets, capable de contenir un entier sur 32 bits. Cette zone mémoire existe, et elle est à nous.
En revanche, lorsque l'on écrit
String s ;
, la machine Java nous donne une variable,
s
, qui peut porter une référence vers une zone mémoire capable de contenir une instance de la classe
String
, classe standard qui permet de gérer les chaînes de caractères. Mais au moment où nous obtenons cette variable, cette zone mémoire n'existe pas, elle n'a pas été réservée. C'est à nous de le faire "à la main".
Si l'on tente d'utiliser immédiatement cette variable :
String s ;
int length = s.length() ; // NullPointerException !!!
On obtient un message d'erreur bien connu : l'ignoble
NullPointerException
, aussi appelée par les programmeurs chevronnés
NPE
(c'est même à ça que l'on reconnaît un développeur chevronné, au fait qu'il parle de
NPE
plutôt que de
NullPointerException
).
String
StringBuffer
et
StringBuilder