Java/Spring - Questions/Réponses Techniques
38 cards38 cards
Review
Spaced repetition shows you each card at the optimal time for long-term memorization, with increasingly spaced reviews.
Question
Qu'est-ce qu'un stéréotype en Spring ?
Answer
Une annotation qui marque une classe comme un composant spécifique pour la détection et la gestion par le conteneur Spring.
Question
Citez 3 stéréotypes Spring courants.
Answer
@Component(générique)@Service(couche service)@Repository(couche d'accès aux données)@Controller(contrôleur web)@RestController(contrôleur REST)
Question
Qu'est-ce qu'un scope en Spring ?
Answer
Le scope d'un bean définit le nombre et la durée de vie de ses instances dans le conteneur Spring.
Question
Quel est le scope par défaut d'un bean Spring ?
Answer
Singleton.
Question
Expliquez le scope Prototype.
Answer
Une nouvelle instance du bean est créée à chaque injection.
Question
Citez les 3 principaux types d'injection en Spring.
Answer
Injection par attribut (field-based), injection par constructeur, injection par setter.
Question
Quelle injection est recommandée et compatible avec
final ?Answer
L'injection par constructeur.
Question
Quel est le rôle du conteneur Spring ?
Answer
Il gère les objets (beans) de l'application : création, configuration, injection de dépendances.
Question
Quelle méthode HTTP est utilisée pour créer une ressource ?
Answer
POST.
Question
Quelle méthode HTTP est utilisée pour modifier partiellement une ressource ?
Answer
PATCH.
Question
Quel code de statut HTTP indique un succès sans contenu à retourner ?
Answer
204 No Content.
Question
Quel code de statut HTTP indique que la ressource n'a pas été trouvée ?
Answer
404 Not Found.
Question
Donnez la différence clé entre une API REST et une API SOAP.
Answer
API REST est stateless et utilise HTTP/JSON (souvent), tandis que SOAP est базирована sur XML, protocole strict et souvent stateful.
Question
Qu'est-ce qu'une API stateless ?
Answer
Une API dont le serveur ne conserve aucune information entre deux requêtes. Chaque requête est indépendante.
Question
Citez deux architectures logicielles principales.
Answer
Architecture Monolithique, Architecture en Couches, Architecture Microservices, Architecture Hexagonale, etc.
Question
Dans MVC, quel est le rôle du Contrôleur ?
Answer
Il reçoit les requêtes utilisateur et coordonne le Modèle et la Vue.
Question
Qu'est-ce que le Design Pattern Singleton ?
Answer
Un pattern de création qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global à celle-ci.
Question
Citez une version LTS de Java postérieure à Java 8.
Answer
Java 11, Java 17 ou Java 21.
Question
Expliquez ce qu'est une fonction 'citoyen de premier ordre' en programmation fonctionnelle.
Answer
Une fonction qui peut être passée en paramètre, retournée par une autre fonction, ou stockée dans une variable.
Question
Donnez un exemple d'opération intermédiaire sur un Stream Java.
Answer
filter(), map(), sorted().Question
Donnez un exemple d'opération finale sur un Stream Java.
Answer
collect(), forEach(), count().Question
Quelle est la principale différence entre Heap et Stack en gestion mémoire Java ?
Answer
Le Stack stocke les variables locales et appels de méthodes (rapide, LIFO), le Heap stocke les objets créés dynamiquement (géré par le GC).
Question
Qu'est-ce qu'un Garbage Collector ?
Answer
Un mécanisme automatique qui libère la mémoire des objets non référencés en Java.
Question
Quelle est la différence fondamentale entre
List et Set en Java ?Answer
List est ordonnée et autorise les doublons ; Set n'autorise pas les doublons et n'est pas forcément ordonné.Question
Qu'est-ce qu'une Checked Exception ?
Answer
Une exception que le compilateur oblige à gérer (ex:
IOException, SQLException).Question
Quel est l'effet du mot-clé
final sur une classe ?Answer
La classe ne peut pas être héritée (elle ne peut pas avoir de sous-classes).
Question
À quoi sert un
record en Java (16+) ?Answer
C'est une classe simplifiée pour les DTOs ou les conteneurs de données immuables. Il génère auto constructeur, getters,
toString, equals, hashCode.Question
Quelle est la différence entre JPA et Hibernate ?
Answer
JPA est une spécification (interface) pour la persistance Java, tandis qu'Hibernate est une implémentation concrète de cette spécification.
Question
Quel est le problème N+1 en JPA et comment peut-on le solutionner ?
Answer
Une requête principale déclenche 'N' requêtes supplémentaires pour charger des entités liées. Solution : utiliser
JOIN FETCH.Question
Quelle jointure SQL retourne toutes les lignes de la table de gauche et seulement les correspondances de la table de droite ?
Answer
LEFT JOIN.Question
Quel est l'acronyme de NoSQL et sa caractéristique principale ?
Answer
NotOnlySQL. Caractéristiques : bases non relationnelles, flexibles, performantes, sans schéma rigide.
Question
Citez une différence majeure entre React et Angular.
Answer
React est une librairie (Facebook), Angular est un framework complet (Google). React utilise JS/TS avec one-way data binding, Angular utilise TS et two-way data binding.
Question
À quoi sert le hook
useContext() dans React ?Answer
Il permet d'accéder à une donnée partagée via un contexte React et d'éviter le 'prop drilling'.
Question
Pourquoi utilise-t-on
className au lieu de class en JSX (React) ?Answer
Car
class est un mot réservé en JavaScript.Question
Donnez la différence entre Merge et Rebase avec Git.
Answer
Merge fusionne et crée un 'merge commit'. Rebase 'rejoue' les commits d'une branche après ceux d'une autre, sans merge commit, pour une histoire linéaire.
Question
Citez deux des principes SOLID.
Answer
- S : Single Responsibility Principle
- O : Open/Closed Principle
- L : Liskov Substitution Principle
- I : Interface Segregation Principle
- D : Dependency Inversion Principle
Question
Comment peut-on versionner une API REST Spring Boot ?
Answer
En utilisant
@RequestMapping("/api/v2/...") sur les endpoints pour indiquer la version.Question
Quel mécanisme Spring permet de centraliser la gestion des exceptions pour les contrôleurs REST ?
Answer
L'utilisation de
@RestControllerAdvice et @ExceptionHandler.Start a quiz
Test your knowledge with interactive questions