Académique Documents
Professionnel Documents
Culture Documents
Java 62%
(462 / 750)
Fiabilité 51%
(35 / 68)
Modélisation 100%
(80 / 80)
SQL 57%
(580 / 1 020)
Modélisation 33%
(20 / 60)
1 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Spring 45%
(100 / 220)
Question
int i1 = 5;
int i2 = 2;
int i3 = i1 / i2;
Réponse
3
2.5
2
NaN
Résultat
Réponse correcte
Connaissance du langage +20pts
2 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 2: Chaînes de caractères égales
Java 01:21 / 02:30 17 / 50 pts
Question
A.isFoo(String param) devrait retourner true si param est égal à la chaine "foo", sinon elle devrait
retourner false.
Réponse
Résultat
Utilisation de equals plutôt que '=='
Connaissance du langage +17pts
3 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 3: Classe abstraite
Java 00:17 / 00:20 20 / 20 pts
Question
Une classe abstraite peut contenir des méthodes concrètes.
Réponse
Vrai
Faux
Résultat
Réponse correcte
Connaissance du langage +20pts
4 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 4: Singleton
Java 01:18 / 00:20 20 / 20 pts
Question
Quelle signature de méthode est généralement utilisée pour obtenir un singleton ?
Réponse
getSingleton()
instance()
getInstance()
Résultat
Réponse correcte
Connaissance du langage +20pts
5 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 5: Méthode finale
Java 00:11 / 00:20 20 / 20 pts
Question
Une méthode déclarée finale est une méthode qui...
Réponse
ne peut pas être redéfinie
retourne une constante
provoque une erreur de compilation
Résultat
Réponse correcte
Connaissance du langage +20pts
6 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 6: Constante
Java 01:25 / 00:25 0 / 20 pts
Question
Quelle déclaration est une constante valide en Java ?
Réponse
define("MAXSIZE", 100);
#define MAXSIZE 100
public static final int MAXSIZE = 100;
const int MAXSIZE = 100;
Résultat
Réponse incorrecte
Connaissance du langage +20pts
7 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 7: Héritage
Java 01:10 / 01:00 20 / 20 pts
Question
Parmi ces deux propositions, laquelle préférez-vous ?
Proposition #1 :
interface CapableDeVoler {
void vole();
}
abstract class Avion implements CapableDeVoler {}
abstract class Oiseau implements CapableDeVoler {}
Proposition #2 :
abstract class Avion {
abstract void vole();
}
abstract class Oiseau extends Avion {}
Réponse
La proposition #1
La proposition #2
Résultat
Réponse correcte
Modélisation +20pts
8 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 8: Classe « friendly »
Java 00:16 / 00:20 20 / 20 pts
Question
Déclarer une classe sans niveau d'accès explicite est en général conseillé.
Réponse
Vrai
Faux
Résultat
Réponse correcte
Modélisation +20pts
Question
La méthode computeMultiplesSum(n) doit renvoyer la somme de tous les multiples positifs de 3 ou 5 ou
7 strictement inférieurs à n.
Par exemple, pour n=11, on obtient 3,5,6,7,9,10 en tant que multiples et la somme de ces multiples vaut
40.
Implémentez computeMultiplesSum(n).
Contraintes:
0 ≤ n < 1000
9 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Réponse
1 import java.util.*;
2 import java.io.*;
3 import java.math.*;
4
5 class Solution {
6
7 public static int computeMultiplesSum(int n) {
8 int c=0;
9 for(int i =3;i<n;i++)
10 {
11 if(i%3==0){
12 // System.out.println("rest par 3 de "+i+"est"+i%3);
13 c+=i;
14 }
15 else if (i%5==0)
16 c+=i;
17 else if (i%7==0)
18 c+=i;
19
20 }
21
22
23 return c;
24 }
25
26 /* Ignore and do not change the code below */
27 public static void main(String args[]) {
28 Scanner in = new Scanner(System.in);
29 int n = in.nextInt();
30 PrintStream outStream = System.out;
31 System.setOut(System.err);
32 int res = computeMultiplesSum(n);
33 System.setOut(outStream);
34 System.out.println(res);
35 }
36 }
10 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Résultat
n=20
Résolution de problèmes +20pts
n=125
Résolution de problèmes +20pts
n=202
Résolution de problèmes +20pts
n=996
Résolution de problèmes +20pts
n=0
Fiabilité +20pts
11 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 10: Opérateur unitaire (i++)
Java 00:25 / 00:25 0 / 40 pts
Question
Réponse
1
Résultat
Réponse correcte
Connaissance du langage +40pts
Réponse(s) correcte(s)
0
12 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 11: Opérateur sur les bits : &
Java 01:05 / 00:20 40 / 40 pts
Question
En base 2 (binaire), combien font 0001 & 0001 ?
Réponse
0010
0000
0001
Résultat
Réponse correcte
Connaissance du langage +40pts
13 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 12: Garbage collector
Java 00:38 / 00:20 40 / 40 pts
Question
Le garbage collector garanti qu'il y a suffisamment de mémoire pour exécuter un programme Java.
Réponse
Vrai
Faux
Résultat
Réponse correcte
Connaissance du langage +40pts
14 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 13: Design pattern 01
Java 01:01 / 00:50 40 / 40 pts
Question
public class A {
private A() {}
Si vous connaissez le patron de conception (design pattern) utilisé dans ce bout de code, saisissez son
nom dans le champ texte (1 mot seulement).
Réponse
singleton
Résultat
Réponse correcte
Modélisation +40pts
Réponse(s) correcte(s)
Singleton
Singleton Pattern
15 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 14: C'est au fruit que l'on connaît l'arbre
Java 17:51 / 25:00 105 / 300 pts
Question
Un arbre est composé de noeuds qui respectent les règles suivantes : Un noeud tient une valeur
correspondant à un entier. Hormis le noeud à la racine de l’arbre, un noeud a toujours un seul autre
noeud qui le référence. Un noeud n’a pas plus de deux enfants, appelés noeud à gauche et noeud à
droite. Si un noeud n’a pas d’enfant à droite ou à gauche, alors la référence correspondante est null. La
valeur tenue par tout enfant du sous arbre à gauche est inférieure à la valeur de son parent et la valeur
tenue par tout enfant du sous arbre à droite est supérieure à la valeur de son parent. Voici un exemple d’
16 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Réponse
1 class Node {
2
3 // keep these fields
4 Node left, right;
5 int value;
6
7 public Node find (int v){
8 // System.out.println(this.value+ "valeur chercher"+ v);
9 if (this.value==v)
10 return(this);
11 else
12 if (this.right!=null && this.value<v)
13 return(this.right.find(v));
14 else if (this.left!=null&&this.value>v)
15 return(this.left.find(v));
16 else
17 return null;
18 }
19
20
21 }
Résultat
Les résultats sont correctes avec un arbre d'une 'petite' hauteur
Résolution de problèmes +90pts
17 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 15: SQL - DROP
SQL 00:18 / 00:45 20 / 20 pts
Question
Quelle commande SQL est utilisée pour supprimer une table d'une base de données ?
Réponse
DELETE table
TRUNCATE table
DROP table
REMOVE table
Résultat
Réponse correcte
Connaissance du langage +20pts
18 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 16: SQL - DELETE
SQL 00:15 / 00:30 20 / 20 pts
Question
Quelle commande SQL permet d'effacer des lignes dans une table ?
Réponse
REMOVE FROM table WHERE ...
UPDATE table REMOVE WHERE ...
DELETE FROM table WHERE ...
DROP FROM table WHERE ...
Résultat
Réponse correcte
Connaissance du langage +20pts
19 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 17: SQL - DISTINCT
SQL 01:55 / 05:00 100 / 100 pts
Question
Modifier la requête pour donner la liste des villes (city) des clients (customer). La liste ne doit pas
contenir de doublon et doit être triée par ordre alphabétique.
Exemple de sortie :
---------------
| CITY |
---------------
| Istanbul |
| Montpellier |
| Tokyo |
---------------
20 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Réponse
Résultat
Utilisation de "distinct", "order by"
Connaissance du langage +100pts
Question
Quelle commande SQL permet d'ajouter une ligne dans une table de base de données ?
Réponse
INSERT
ADD
UPDATE
MORE
Résultat
Réponse correcte
Connaissance du langage +20pts
21 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 19: SQL - Clé étrangère n°1
SQL 00:27 / 01:00 20 / 20 pts
Question
D'après le schéma de base de données ci-dessus, indiquer ce qui qualifie le mieux la colonne
"customer_id" de la table PURCHASE_ORDER.
Réponse
Clé primaire
Index
Blob
Clé étrangère
22 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Résultat
Réponse correcte
Modélisation +20pts
23 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 20: SQL - NOT NULL
SQL 03:33 / 05:00 200 / 200 pts
Question
Modifier la requête pour selectionner uniquement les clients ayant un code postal (zipcode) égal à
75000 ou 34000 et ayant une date de naissance (birth_date) définie.
Exemple de sortie :
--------------------------
| LASTNAME | FIRSTNAME |
--------------------------
| RIVER | John |
| JACKSON | Elizabeth |
| PUTTER | James |
--------------------------
24 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Réponse
Résultat
Utilisation de "not null"
Connaissance du langage +200pts
25 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 21: SQL - NOT EXISTS
SQL 03:44 / 05:00 200 / 200 pts
Question
Modifier la requête pour selectionner uniquement les clients (customer) n'ayant aucun ordre achat
(purchase_order) associé.
Exemple de sortie :
---------------
| CUSTOMER_ID |
---------------
| 8 |
| 5 |
---------------
26 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Réponse
Résultat
Utilisation de "not exists" ou "not in"
Connaissance du langage +200pts
27 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 22: SQL - HAVING
SQL 09:00 / 05:00 0 / 200 pts
Question
Modifier la requête pour fournir la liste du nombre de clients (customer) par ville (city). Seules les villes
qui comptent deux clients ou plus doivent être sélectionnées.
Exemple de sortie :
--------------------------------
| CITY | CUSTOMER_COUNT |
--------------------------------
| Boston | 8 |
| New Delhi | 2 |
--------------------------------
28 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Réponse
Résultat
Utilisation de "having"
Connaissance du langage +200pts
29 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 23: SQL - LIKE
SQL 03:08 / 05:00 0 / 200 pts
Question
Modifier la requête pour selectionner uniquement les noms et prénoms des clients (customer) dont le
nom commence par la lettre 'W', triés par ordre alphabétique de noms puis de prénoms.
Exemple de sortie :
------------------------
| LASTNAME | FIRSTNAME |
------------------------
| WHITTARD | Bill |
| WILLIAMS | John |
------------------------
30 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Réponse
Résultat
Utilisation de "like", "order by"
Connaissance du langage +200pts
Question
Indiquer quelles propositions sont vraies pour une colonne déclarée en tant que clé primaire.
Réponse
Elle ne peut pas contenir de doublons
Elle peut contenir la valeur NULL
Elle ne peut pas être en plus une clé étrangère
Elle peut être déclarée avec un type "caractère" tel que "VARCHAR"
Résultat
Réponse incorrecte
Modélisation +40pts
31 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 25: [Core] Détection de bean
Spring 01:11 / 00:45 0 / 20 pts
Question
Vous souhaitez que la classe suivante soit détectée par un scan Spring et enregistrée en tant que bean.
Quelle annotation utiliseriez-vous ?
Réponse
Component
Bean
Scannable
Register
Résultat
Réponse incorrecte
Connaissance du langage +20pts
32 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 26: [Core] Injection
Spring 00:57 / 00:45 20 / 20 pts
Question
Quelle annotation peut-on utiliser pour injecter un bean Spring ?
Réponse
@Autowired
@PostConstruct
@Bean
@Component
@InjectBean
Résultat
Réponse correcte
Connaissance du langage +20pts
33 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 27: [Data] find by Id
Spring 01:31 / 01:00 0 / 20 pts
Question
On considère une entitée User et l'interface UserRepository associée, héritée de CrudRepository, qui
permet son accès depuis la base.
Quelle méthode devriez-vous définir pour permettre de récupérer un objet User à partir de son id ?
Réponse
findById
Résultat
Réponse correcte
Connaissance du langage +20pts
Réponse(s) correcte(s)
findUserById
getUserById
readUserById
34 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 28: [Validation] Validator
Spring 01:36 / 01:15 20 / 20 pts
Question
Quelle est le nom de l'interface Spring implémentée ci-dessous, utilisée pour valider un business model
depuis plusieurs modules Spring ?
Réponse
Validator
Résultat
Réponse correcte
Connaissance du langage +20pts
Réponse(s) correcte(s)
Validator
org.springframework.validation.Validator
35 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 29: [Rest] RestController
Spring 00:27 / 00:30 20 / 20 pts
Question
Comment déclare-t-on un endpoint REST dans Spring ?
Réponse
@RestEndpoint
@RestController
@Rest
@REST
Résultat
Réponse correcte
Connaissance du langage +20pts
36 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 30: [Rest] RestTemplate
Spring 04:49 / 00:45 0 / 40 pts
Question
Quelle classe de Spring Framework utiliseriez-vous pour appeler un service Rest ?
Réponse
org.springframework.web.servlet.DispatcherServlet
Résultat
Réponse correcte
Connaissance du langage +40pts
Réponse(s) correcte(s)
RestTemplate
org.springframework.web.client.RestTemplate
37 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 31: [Core] Application events
Spring 01:20 / 00:35 40 / 40 pts
Question
Quel événement du cycle de vie de l'application n'existe pas dans Spring Framework ?
Réponse
ContextRefreshedEvent
ContextStartedEvent
ContextClosedEvent
ContextLostEvent
Résultat
Réponse correcte
Connaissance du langage +40pts
38 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Question 32: [Core] Constructeurs Autowired
Spring 01:00 / 00:50 0 / 40 pts
Question
Combien de constructeurs d'une classe peuvent être annotés avec @Autowired ?
Réponse
0 - @Autowired n'est utilisable que sur les champs et les méthodes setXXX
1 - sinon Spring ne saurait lequel choisir
multiple - si chacun d'eux a un @Qualifier différent
multiple - dans tous les cas
Résultat
Réponse incorrecte
Connaissance du langage +40pts
39 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)
Glossaire
Connaissance du langage
La mesure de cette compétence permet de déterminer l'expérience du candidat dans la pratique d'un langage de
programmation. Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui devra être
rapidement opérationnel.
Modélisation
Cette mesure fournit une indication sur la capacité du candidat à appliquer des solutions standard pour résoudre des
problèmes récurrents. Un développeur ayant un bon niveau dans cette compétence augmentera la qualité
(maintenabilité, évolutivité) de vos applications. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui sera amené à travailler sur les
briques qui structurent vos applications, à anticiper les besoins de demain pour développer des solutions pérennes.
Résolution de problèmes
Cette compétence correspond aux aptitudes du candidat à comprendre et à structurer son raisonnement pour trouver
des solutions à des problèmes complexes. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vos applications ont une composante technique importante (R&D,
innovation).
Fiabilité
La fiabilité caractérise la capacité du candidat à réaliser des solutions qui prennent en compte les cas particuliers. Plus
cette compétence est élevée, plus vos applications sont robustes (moins de bugs).
40 / 40
Slim Romdhani (Romdhani.slim.tn@gmail.com)