Java/Spring - Questions/Réponses Techniques

38 cartes

38 cartes

Réviser
La répétition espacée te présente chaque carte au moment optimal pour la mémoriser durablement, en espaçant les révisions de façon croissante.
Question
Qu'est-ce qu'une Checked Exception ?
Réponse
Une exception que le compilateur oblige à gérer (ex: IOException, SQLException).
Question
Qu'est-ce qu'un stéréotype en Spring ?
Réponse
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.
Réponse
  • @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 ?
Réponse
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 ?
Réponse
Singleton.
Question
Expliquez le scope Prototype.
Réponse
Une nouvelle instance du bean est créée à chaque injection.
Question
Citez les 3 principaux types d'injection en Spring.
Réponse
Injection par attribut (field-based), injection par constructeur, injection par setter.
Question
Quelle injection est recommandée et compatible avec final ?
Réponse
L'injection par constructeur.
Question
Quel est le rôle du conteneur Spring ?
Réponse
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 ?
Réponse
POST.
Question
Quelle méthode HTTP est utilisée pour modifier partiellement une ressource ?
Réponse
PATCH.
Question
Quel code de statut HTTP indique un succès sans contenu à retourner ?
Réponse
204 No Content.
Question
Quel code de statut HTTP indique que la ressource n'a pas été trouvée ?
Réponse
404 Not Found.
Question
Donnez la différence clé entre une API REST et une API SOAP.
Réponse
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 ?
Réponse
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.
Réponse
Architecture Monolithique, Architecture en Couches, Architecture Microservices, Architecture Hexagonale, etc.
Question
Dans MVC, quel est le rôle du Contrôleur ?
Réponse
Il reçoit les requêtes utilisateur et coordonne le Modèle et la Vue.
Question
Qu'est-ce que le Design Pattern Singleton ?
Réponse
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.
Réponse
Java 11, Java 17 ou Java 21.
Question
Expliquez ce qu'est une fonction 'citoyen de premier ordre' en programmation fonctionnelle.
Réponse
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.
Réponse
filter(), map(), sorted().
Question
Donnez un exemple d'opération finale sur un Stream Java.
Réponse
collect(), forEach(), count().
Question
Quelle est la différence fondamentale entre List et Set en Java ?
Réponse
List est ordonnée et autorise les doublons ; Set n'autorise pas les doublons et n'est pas forcément ordonné.
Question
Quelle est la principale différence entre Heap et Stack en gestion mémoire Java ?
Réponse
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 ?
Réponse
Un mécanisme automatique qui libère la mémoire des objets non référencés en Java.
Question
Quel est l'effet du mot-clé final sur une classe ?
Réponse
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+) ?
Réponse
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 ?
Réponse
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 ?
Réponse
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 ?
Réponse
LEFT JOIN.
Question
Quel est l'acronyme de NoSQL et sa caractéristique principale ?
Réponse
NotOnlySQL. Caractéristiques : bases non relationnelles, flexibles, performantes, sans schéma rigide.
Question
Citez une différence majeure entre React et Angular.
Réponse
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 ?
Réponse
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) ?
Réponse
Car class est un mot réservé en JavaScript.
Question
Donnez la différence entre Merge et Rebase avec Git.
Réponse
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.
Réponse
  • 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 ?
Réponse
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 ?
Réponse
L'utilisation de @RestControllerAdvice et @ExceptionHandler.

Lancer un quiz

Teste tes connaissances avec des questions interactives