100 Questions/Reponses
pour un Entretien Backend Java
100 Questions/Reponses pour un Entretien Backend Java
Table des matieres
Introduction ........................................... 3
A. Java - Fondamentaux ........................................... 4
B. Spring & Spring Boot ........................................... 5
C. Architecture Backend ........................................... 6
D. Base de Donnees ........................................... 7
E. Securite ........................................... 8
F. DevOps & Observabilite ........................................... 9
Page 2
100 Questions/Reponses pour un Entretien Backend Java
Introduction
Ce document regroupe 100 questions et reponses couvrant l'ensemble des connaissances
essentielles pour reussir un entretien technique en tant que developpeur backend Java. Les themes
abordes incluent Java, Spring, l'architecture logicielle, les bases de donnees, la securite et les
pratiques DevOps.
A. Java - Fondamentaux
1. Difference entre interface et classe abstraite
Une interface definit un contrat sans implementation (sauf methodes par defaut). Une classe
abstraite peut contenir de l'etat et du code partage. On choisit une interface pour un role, une classe
abstraite pour un comportement commun.
2. Difference entre List, Set et Map
List : ordonnee, doublons autorises.
Set : non ordonnee, pas de doublons.
Map : cle -> valeur, cles uniques.
3. Qu'est-ce qu'un record ?
Une structure immuable avec equals/hashCode/toString generes automatiquement. Ideal pour les
DTO.
4. Difference entre HashMap et ConcurrentHashMap
HashMap n'est pas thread-safe. ConcurrentHashMap utilise une segmentation interne permettant
des acces concurrents.
5. Qu'est-ce que le mot-cle volatile ?
Il garantit la visibilite des modifications d'une variable entre threads, mais ne protege pas les
operations atomiques complexes.
6. Qu'est-ce qu'un code thread-safe ?
Un code thread-safe fonctionne correctement en presence de plusieurs threads sans corruption
d'etat.
7. Difference entre synchronized et Lock
synchronized est simple mais moins flexible. Lock permet timeout, tryLock, conditions.
Page 3
100 Questions/Reponses pour un Entretien Backend Java
8. Qu'est-ce qu'un deadlock ?
Deux threads se bloquent mutuellement en attendant une ressource detenue par l'autre.
9. Qu'est-ce qu'un race condition ?
Deux threads accedent a une ressource partagee sans synchronisation, entrainant un
comportement imprevisible.
10. Heap vs Stack
Stack : variables locales, appels de fonctions.
Heap : objets alloues dynamiquement.
11. Qu'est-ce que le Garbage Collector ?
Un mecanisme qui libere automatiquement la memoire des objets non references.
12. Difference entre JIT et AOT
JIT compile a l'execution, AOT compile avant l'execution.
13. Qu'est-ce qu'un ClassLoader ?
Un composant qui charge les classes en memoire.
14. Qu'est-ce que l'immutabilite ?
Un objet dont l'etat ne change jamais apres construction.
15. Difference entre equals et ==
equals compare le contenu, == compare les references.
16. Qu'est-ce qu'un Optional ?
Un conteneur qui evite les NullPointerException.
17. Qu'est-ce qu'un Stream ?
Une API pour manipuler des collections de maniere fonctionnelle.
18. Lazy vs Eager evaluation
Lazy : calcul differe.
Eager : calcul immediat.
19. Qu'est-ce qu'un CompletableFuture ?
Un outil pour gerer l'asynchronisme sans bloquer les threads.
20. Pourquoi preferer composition a heritage ?
La composition evite le couplage fort et les hierarchies rigides.
Page 4