TP1 : Introduction à Java

Pour chacun des execrices, vous prendrez soin de décrire le comportement de la mémoire après chaque commande.

Exercice 1 : Compilation et exécution

Écrire un programme qui affiche Hello World. Vous écirez ce programme dans le fichier HelloWorld.java. Compilez ensuite le code source en tapant la commande:

javac HelloWorld.java

Exécutez le programme en tapant la commande:

java HelloWorld

Exercice 2 : Utilisations des variables

Ecrivez un programme qui alloue une espace mécmoire et l'associe a une variable.

Initialisez maintenant votre variable et vérifiez qu'elle contient bien la donnée souhaitée.

Déssinez la mémoire du programme à chaque étape du programme précédent.

Est-ce que le programme suivant est correct ?

int ToTo;
int 4Pot;
int artifice;
int variable_1;
int variable-1;
int ha!ha!;
int calcul,
int demain@soir;
int crétacé;

Donnez toutes les erreurs qu'il contient. Et corriger le programme.

Echange du contenu de deux variables

Soit le programme suivant;

int a=1;
int b=2;

Nous souhaitons échanger les valeurs de a et de b. Comment procède-t-on?

Exercice 3 : Les opérateurs

Ecrivez un programme qui calcul la moyenne des valeurs suivantes:1,3,4,5,3,3,4,3,4,1.

Que fait le programme suivant:

byte a = 127;
a = a+1;

Est-ce normal ? Pouvez-vous justifer le comportement obtenu?

Décrivez ce que fait l'ordinateur dans les cas suivants:

int a = 1024;
byte b = 3;
char c = 'A';
double d = 0.1;
a = a+1;
d = d+1;
d=a;
d=b;
a=b;
a=c;
a = a / 3;
d = a / 3;
d = a / 3.0;

Justifiez vos réponses.

Que fait le compilateur si vous ajoutez les lignes suivantes:

b = b + 1;
c = c + 1;
a = a / 3.0;
a = d;
b = d;
a = 1024;
b = a;
c = a;

Pourquoi ?

Il est possible de forcer le compilateur à compiler quand, même. On utilise pour cela l'opération de cast. On obtient alors le code suivant:

b = (byte) (b + 1);
c = (char) (c+1);
a = (int) (a / 3.0);
a = (int) d;
b = (byte) d;
a = 1025;
b = (byte) a;
c = (char) a;
a = 262144;
c = (char) a;

Testez le code précédent et expliquez le résultat obtenu.

L'opérateur de cast (TYPE) oblige le compialteur d'interpréter le résultat qui le précède comme un objet de type TYPE. Ce procédé, bien qu'utile dans certains cas, peut s'avérer très dangereux car il peut provoquer une perte d'nformations.

Valid XHTML 1.1