public class Test { public static void main(String []args) { // code 1 /* * a: l'identificateur d'une boîte de taille 32 bits, utilisant * la représentation en complément à 2 et initialisée à la valeur 13 */ int a = 13; /* * le a de gauche désigne la boîte * le a de droite désigne la valeur actuellement contenue dans la boîte * une fois évaluée l'expression de droite, on stocke la valeur * produite dans la boîte a */ a = a + 1; /* * a désigne la valeur contenue dans la boîte */ System.out.println(a); // code 2 /* * pas de boîte, il s'agit d'une valeur «pure» */ System.out.println(13); // code 3 /* * b désigne une boîte (32 bits, complément à deux, etc) qui contient * une valeur, inconnue et qu'il est interdit par les règles de Java * de consulter. variable non initialisée. */ int b; /* * on stocke une valeur explicite dans la boîte qui désormais peut * être utilisée comme on veut. */ b = 12; System.out.println(b); // code 4 /* * a et b désignent les valeurs contenues dans leurs boîtes * respectives */ if (a==b) { System.out.println("oui"); } else { System.out.println("non"); } // code 5 /* * ta est une variable de nature particulière, la valeur stockée * n'est pas manipulable autrement que par affectation, on ne * peut consulter cette valeur. La variable est une boîte qui contient * une valeur qui peut référencer une autre variable de type indiqué. * ta n'est pas un tableau d'entiers. ta est une référence de tableau * d'entiers qui ne désigne pour l'instant rien. */ int []ta; /* * new construit une boîte, ici une boîte (un objet) * contenant (entre autres) * 5 entiers, numérotés 0, 1, 2, 3, 4 et initialisés à 0 (un tableau * de 5 entiers). * ta désigne par affectation la boîte créée. La boîte ne possède * pas d'identificateur, de nom; elle ne peut être utilisée que * par l'intermédiaire de ta. */ ta = new int[5]; /* * la notation ta. ou ta[] permet d'atteindre une partie du contenu * de l'objet. */ System.out.println(ta.length); System.out.println(ta[1]); /* * l'affichage de ta produit simplement l'affichage de la valeur de * la référence, une donnée technique non véritablement utilisable. */ System.out.println(ta); /* * ta désigne maintenant un autre objet tableau de 10 entiers. * L'objet précédemment désigné ne possède plus de référence, et * est par conséquent récupéré par la machine Java et son mécanisme * de garbage collection, ramasse-miettes. */ ta = new int[10]; System.out.println(ta.length); System.out.println(ta[1]); /* * la valeur null, ne peut être employée qu'avec les références * pour indiquer que celles-ci ne désignent rien, aucun objet. */ ta = null; /* * toute tentative d'accès à un object via une référence qui ne * désigne rien provoque une erreur grave et prématurée et l'arrêt * de l'exécution : java.lang.NullPointerException */ System.out.println(ta.length); } }