Examen de Juin 2004 page 1
page 1
IPST-CNAM
Conception d'applications distribuées en Java
Cycle C / TL16954
Mardi 15 Juin 2004
Sans document
Durée : 2 heures
Enseignants : LAFORGUE Jacques
MILLAN Thierry
Correction Session de JUIN
Mode d'emploi :
Ce sujet est un QCM dont les questions sont de 3 natures :
les questions à 2 propositions: dans ce cas une seule des 2 propositions est bonne.
si aucune réponse alors + 0
si 1 réponse bonne alors +1
si 1 réponse fausse alors 1
les questions à 3 propositions dont 1 seule proposition est bonne
si aucune réponse alors + 0
si 1 réponse bonne alors + 1
si 1 réponse fausse alors ½
si 2 réponses fausses alors 1
les questions à 3 propositions dont 2 propositions sont bonnes.
si aucune réponse alors + 0
si 1 réponse bonne alors + ½
si 2 réponses bonnes alors +1
si 1 réponse fausse alors 1
Dans tous les cas, il existe au moins 1 réponse bonne et au moins 1 réponse fausse.
On ne compte les valeurs négatives que à partir de 10% du nombre de question du QCM.
On peut remarquer que cocher toutes les propositions d'une question revient à ne rien cocher
(égal à 0).
Il s'agit de faire une croix dans les cases de droite en face des propositions.
Si vous devez raturer une croix, faites-le correctement afin qu'il n'y ait aucune ambiguïté.
N'oubliez pas d'inscrire en en-tête du QCM, votre nom et prénom, votre numéro de groupe de TP.
Si vous avez changé de groupe de TP en cours d'année, indiquez les 2 numéros de groupe en précisant à partir de
quel projet vous avez changé de groupe.
Ce QCM est constitué de 60 questions.
Vous avez donc une moyenne de 2 minutes par question.
Vous avez donc le droit de vous tromper sans pénalités jusqu'à la hauteur de 6 points.
Examen de Juin 2004 page 2 QCM
page 2
NOM:
PRENOM:
GROUPE DE TP :
Le langage JAVA est un langage orienté objet
Q 1
1
OUI
X
2
NON
Un package JAVA
Q 2
1
est un répertoire de fichiers JAVA (.class)
X
2
est une librairie de classes JAVA sous la forme d'un fichier binaire
3
est une archive de fichier .class dite "fichier .jar"
L'en-tête de déclaration d'une méthode main d'une classe JAVA peut-être:
Q 3
1
static public void main(String args[])
X
2
static public void main(int nb_args, String args[])
3
void main(int nb_args, String args[])
L'instruction JAVA permettant de lever une exception est:
Q 4
1
throws Exception;
2
throw new Exception("Erreur");
X
3
catch (Exception e)
{
System.out.println("Erreur");
}
Si <genre> est private alors la variable x est visible dans
Q 5
1
uniquement les classes Mere, Fille et FilleIndigne
2
uniquement la classe Mere
X
3
uniquement les classes Mere, A, B et C
Mere
{
<genre>
int
x;
}
Class Fille
Class
FilleIndigne
Package X
Package Y
A
B
C
E
Examen de Juin 2004 page 3 QCM
page 3
La classe Mere étant public, si <genre> est protected alors la variable x est visible dans
Q 6
1
uniquement les classes Mere, Fille et FilleIndigne
2
uniquement les classes Mere, Fille, FilleIndigne et A, B et C
X
3
toutes les classes
Individu tab[] = new Individu[100];
Individu ind = new Individu();
ind.nom = "DUPONT"
tab[0] = ind;
tab[0].nom = "LAFONT"
System.out.println(ind.nom);
Ce code affiche:
Q 7
1
DUPONT
2
LAFONT
X
public class Exemple
{
public Vector v;
public Exemple(){}
public add(String e)
{
v.addElement((Object)e);
}
}
Dans un programme Java:
Exemple E = new Exemple();
E.add("EXEMPLE");
System.out.println(E.v.elementAt(0));
Ce code :
Q 8
1
affiche "EXEMPLE"
2
affiche ""
3
déclenche une exception
X
Le principe de "sérialisation" en Java consiste à utiliser l'interface Serializable
Q 9
1
Cette interface permet d'écrire un objet JAVA dans un fichier binaire
X
2
Cette interface permet d'écrire un objet JAVA dans un socket
X
3
Une classe héritant de UnicastRemoteObject doit implémenter cette interface
Le mot clef réservé du langage JAVA: interface
Q 10
1
permet de déclarer des méthodes abstraites
X
2
permet de déclarer les prototypes des méthodes appartenant à un package
Examen de Juin 2004 page 4 QCM
page 4
Soit la déclaration de la classe suivante :
public class MonThread extends Thread
{
public void run()
{
// traitement du thread
}
}
Pour créer le thread et l'exécuter, il faut faire les instructions suivantes:
Q 11
1
MonThread p = (MonThread)(new Thread());
p.start()
2
Runnable p = new Runnable ();
MonThread q = new Thread(p);
q.start();
3
MonThread p = new MonThread ();
p.start();
X
Soit l'architecture d'un projet suivante :
projet
DemonHttp.java
myhttp
RequeteHttp.java
LoadClassFile.java
compil.sh
myhttp est un package utilisé par le programme DemonHttp.java dans lequel la commande import
myhtpp.*; est faite.
On est dans le répertoire projet/ , pour compiler ce programme, laquelle de ces commandes est juste
Q 12
1
javac classpath "myhhtp" DemonHttp.java
2
javac classpath "." DemonHttp.java
X
En JAVA, avec RMI, un objet distribué
Q 13
1
est un objet JAVA qui est échangé entre le serveur et le client
2
est un objet qui hérite de la classe RemoteObject
(X)
3
est un objet JAVA créé puis enregistré dans l'adaptateur par l'utilisation de l'instruction rebind
X
En JAVA, avec RMI, un objet distribué
Q 14
1
doit hériter de la classe UniCastRemoteObject
X
2
doit implémenter une interface contenant les méthodes distantes de l'objet distribué
X
3
doit implémenter l'interface Serializable
En JAVA, avec RMI, tout paramètre d'une méthode distante d'un objet distribué
Q 15
1
ne peut pas être de type primitif (int, double, char, …)
2
sa classe d'appartenance doit implémenter l'interface Serializable
X
3
sa classe d'appartenance ne peut pas être une classe dérivée de InputStream et OutputStream
X
En JAVA, avec RMI, plusieurs clients d'un objet distribué peuvent utiliser en parallèle une même
méthode distante
Q 16
1
OUI
2
NON
X
Examen de Juin 2004 page 5 QCM
page 5
Dans une architecture distribuée
Q 17
1
les amorces sont utilisés par l'objet distribué
2
les squelettes sont utilisés par le client
3
les squelettes sont utilisés par l'objet distribué
X
En JAVA, avec RMI, le compilateur IDL (rmic)
Q 18
1
permet de créer les objets distribués
2
permet de créer les amorces et les squelettes
X
3
permet de créer un programme JAVA appelé "Middleware" assurant la communication entre
les clients et les serveurs
Dans une architecture distribué, un objet distribué peut-il utiliser les services d'un autre objet distribué
Q 19
1
OUI
X
2
NON
En RMI, la commande d'exécution de l'adaptateur d'objet peut être :
Q 20
1
java classpath "." sun.rmi.registry.RegistryImpl
X
2
java sun.rmi.registry.RegistryImpl 9110
X
3
java rmiRegistry 9110
Choisir le(s) code(s) correct(s) de la méthode main de GrilleOD.java qui crée l'objet distribué GRILLE
Q 21
1
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
urlRegistry="rmi://"+hostRegistry+":"+portRegistry+"/";
Naming.rebind(urlRegistry+"GRILLE");
2
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
Naming.rebind(new GrilleOD(20,20, hostRegistry, portRegistry));
3
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
urlRegistry="rmi://"+hostRegistry+":"+portRegistry+"/";
Naming.rebind(urlRegistry+"GRILLE", new GrilleOD(20,20,urlRegistry));
X
Choisir le(s) code(s) corrects de la méthode main d'un client de l'objet distribué GRILLE
Q 22
1
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
// Connexion a l'objet distribué
urlRegistry="rmi://"+hostRegistry+":"+portRegistry+"/";
GrilleODInt grilleod = (GrilleODInt)Naming.lookup(urlRegistry+"GRILLE");
X
2
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
// Connexion a l'objet distribué
urlRegistry="rmi://"+hostRegistry+":"+portRegistry+"/";
GrilleODInt grilleod = (GrilleODInt)Naming.lookup(urlRegistry);
3
// Connexion a l'objet distribué
GrilleODInt grilleod = (GrilleODInt)Naming.lookup("GRILLE");
L'instruction rebind consiste à enregistrer ,dans l'adaptateur d'objet de RMI, un objet distribué
Q 23
1
OUI
X
2
NON
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !