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