Java (Core)
1. Différence entre == et .equals() en Java ?
== compare les références mémoire.
.equals() compare le contenu des objets (si la méthode est bien redéfinie).
2. Différence entre ArrayList et LinkedList ?
ArrayList : Accès rapide (O(1)) mais coûteux pour l’insertion/suppression au milieu.
LinkedList : Insertion/Suppression rapide (O(1) si en tête ou queue) mais accès lent
(O(n)).
3. Qu’est-ce qu’un HashMap et comment fonctionne-t-il ?
Une structure clé-valeur utilisant un tableau et des listes chaînées (hashing).
Collision gérée par chaînage ou arbre rouge-noir (JDK 8+).
Spring Framework
4. Différence entre @Component, @Service, et @Repository ?
@Component : Générique, pour n'importe quel bean Spring.
@Service : Spécifique aux services métier.
@Repository : Spécifique à la couche DAO (avec gestion des exceptions automatiques).
5. Comment fonctionne la gestion des transactions avec Spring ?
Via l’annotation @Transactional.
Peut être appliquée sur une méthode ou une classe.
Gère automatiquement commit/rollback selon les exceptions levées.
6. Cycle de vie d’un Bean dans Spring ?
1. Instanciation.
2. Injection des dépendances.
3. @PostConstruct (initialisation).
4. Utilisation du bean.
5. @PreDestroy (nettoyage avant suppression).
7. Différence entre Spring Boot et Spring MVC ?
Spring MVC : Framework pour construire des applications web MVC.
Spring Boot : Facilite la configuration (auto-configuration, serveur embarqué).
8. À quoi sert Spring Security ?
Gestion de l'authentification et de l'autorisation.
Utilise des filtres (UsernamePasswordAuthenticationFilter,
JwtAuthenticationFilter).
Spring Data JPA & Hibernate
9. Différence entre fetch = [Link] et fetch = [Link] ?
Lazy : Chargement différé (meilleure perf).
Eager : Chargement immédiat (peut causer des problèmes de performance).
10. Qu’est-ce qu’un EntityManager et un Session en Hibernate ?
EntityManager : Interface JPA pour gérer les entités (CRUD, transactions).
Session : Interface Hibernate pour gérer la persistance des objets.
Angular
11. Différence entre ngOnInit et constructor ?
constructor : Exécuté lors de l’instanciation du composant.
ngOnInit : Exécuté après l’initialisation des données (bon endroit pour l’appel aux API).
12. Comment fonctionne le data binding dans Angular ?
Interpolation ({{}}) : Affichage dans le HTML.
Property Binding ([attr]) : Modifie les propriétés d'un élément HTML.
Event Binding ((event)) : Gère les événements utilisateur.
Two-way Binding ([(ngModel)]) : Synchronisation bi-directionnelle.
13. Différence entre @Input() et @Output() ?
@Input() : Permet de recevoir des données d’un parent.
@Output() : Permet d’émettre des événements au parent.
14. Que sont les Observables et Promises ?
Promise : Exécute une seule valeur asynchrone et ne peut pas être annulée.
Observable : Flux de données asynchrones pouvant être annulé et manipulé (RxJS).
15. Comment intercepter des requêtes HTTP en Angular ?
Via un interceptor (HttpInterceptor).
Permet de gérer les tokens JWT, logs, erreurs globales.
Bonus : Microservices & DevOps
16. Qu’est-ce que Docker ?
Un outil de conteneurisation qui permet d'encapsuler une application et ses dépendances.
17. Différence entre Monolithe et Microservices ?
Monolithe : Application unique et centrale.
Microservices : Modules indépendants communiquant via API REST ou messages.