Toutes les variables que l'on peut manipuler en Java sont typées, ce qui signifie que le programmeur doit leur affecter un type qui est pris en compte par le compilateur pour vérifier la cohérence de l'utilisation de ces variables. On distingue deux grandes catégories de types:
String s; // N'alloue pas l'espace mémoire requis // pour stocker un objet de la classe String s = new String("toto"); // L'opérateur new alloue l'espace mémoire requis par le // constructeur de la classe String et renvoie (assigne // dans la variable s) la référence à cet espace mémoire.On distingue quelques fois les références à des objets (comme ci-dessus) et les références à des tableaux. Ces deux types de référence sont bien de même nature, même si les constructeurs de tableaux sont un peu particuliers.
Les tableaux, en Java, sont des instances de classes invisibles (leur documentation n'apparaît pas dans les API). Ils permettent de stocker un nombre établi d'éléments, tous du même type. Une variable de type tableau se déclare avec la syntaxe suivante:
TypeElement[] nomVariable;Un objet tableau de ce type, de taille N, s'alloue comme ceci:
nomVariable = new TypeElement[N];Il existe d'autres syntaxes, mais celle-ci est la plus répandue.
Lorsqu'un tableau est alloué, tous ses éléments sont initialisés à la valeur par défaut du type des éléments. Cette valeur est 0 pour tous les types numériques, false pour le type boolean et null pour tous les types référence. Ce null correspond à "la référence vers rien" et c'est une erreur que d'essayer d'y accéder.
% java Tri 34 65 12 7 27 12 7 12 12 27 34 65