BLOC 1 — Questions 1 à 10
1) Différence entre classe et instance
Une classe est un modèle; une instance est un objet créé à partir de cette classe.
2) Comment créer une instance en Java ?
Avec new + constructeur.
3) C’est quoi un membre statique ?
Un membre appartenant à la classe et non à l’objet.
4) C’est quoi un constructeur ?
Méthode spéciale pour initialiser un objet.
5) Types de constructeurs ?
Par défaut, paramétré.
6) Peut-on surcharger un constructeur ?
Oui.
7) C’est quoi this() ?
Permet d’appeler un autre constructeur de la même classe.
8) Classe abstraite ?
Classe incomplète qui peut contenir des méthodes abstraites.
9) Interface ?
Contrat qui définit les comportements.
10) Caractéristiques d’une interface ?
Méthodes public abstraites (avant Java 8), default, static etc.
BLOC 2 — Questions 11 à 20
11) Quand utiliser classe abstraite vs interface ?
Classe abstraite pour du code commun; interface pour un contrat.
12) Règles de surcharge ?
Changer nombre/type/ordre des paramètres.
13) Règles de redéfinition ?
Même signature; visibilité égale ou plus grande.
14) Visibilité modifiable ?
On peut augmenter, jamais réduire.
15) Méthode final ?
Ne peut pas être redéfinie.
16) Peut-on redéfinir static ?
Non (method hiding seulement).
17) Modificateurs d’accès ?
public, protected, default, private.
18) Piliers POO ?
Encapsulation, héritage, polymorphisme, abstraction.
19) Inconvénients héritage ?
Couplage fort.
20) Problème méthode final ?
Rigidité, pas d’override.
BLOC 3 — Questions 21 à 30
21) Réflexion ?
Inspection des classes à l’exécution.
22) Polymorphisme statique/dynamique ?
Statique = surcharge; dynamique = override.
23) Redéfinir final ?
Non.
24) Exception ?
Erreur qui interrompt le programme.
25) Checked vs unchecked ?
Checked: compilateur oblige; unchecked: RuntimeException.
26) try/catch ?
Gestion d’erreurs.
27) finally s’exécute toujours ?
Oui.
28) Exception dans finally ?
Remplace l’exception initiale.
29) Exception personnalisée ?
extends Exception / RuntimeException.
30) Unchecked personnalisée ?
extends RuntimeException.
BLOC 4 — Questions 31 à 40
31) GET ?
Récupérer des données.
32) Différence GET/POST ?
GET = lecture; POST = envoi.
33) Envoyer des données en GET ?
Dans l’URL.
34) Envoyer fichiers via POST ?
Oui avec multipart/form-data.
35) Cycle vie Servlet ?
init(), service(), destroy().
36) Différence Servlet/JSP ?
Servlet = logique; JSP = vue.
37) Priorité ?
Servlet.
38) Récupérer paramètres formulaire ?
[Link]().
39) Récupérer tableau paramètres ?
getParameterValues().
40) getAttribute() ?
Récupérer objet stocké dans request/session.
BLOC 5 — Questions 41 à 50
41) setAttribute() ?
Stocker un objet.
42) getParameter vs getAttribute ?
String vs Object.
43) Partager données JSP ?
request/session/application.
44) Rediriger JSP ?
forward ou sendRedirect.
45) Différence forward/redirect ?
Serveur vs client.
46) [Link]() ?
Détruit la session.
47) Écrire réponse HTTP ?
[Link]().
48) doGet() ?
Traite GET.
49) doPost() ?
Traite POST.
50) Appeler doGet depuis doPost ?
Possible mais mauvaise pratique.
BLOC 6 — Questions 51 à 60
51) GitHub ?
Hébergement, versioning.
52) Commandes git ?
init, clone, add, commit, push…
53) commit vs push ?
Local vs distant.
54) Jenkins ?
Intégration continue.
55) ORM ?
Mapping objet-relationnel.
56) Implémentations ORM ?
Hibernate, EclipseLink.
57) Marquer entité ?
@Entity.
58) JPA ? Managed/Detached ?
JPA spec; Managed attaché; Detached non.
59) JPA vs Hibernate ?
Spec vs implémentation.
60) Relations entités ?
@OneToOne etc.
BLOC 7 — Questions 61 à 69
61) HQL + Lazy/Eager ?
Lazy = à la demande; Eager = tout charger.
62) Spring Core vs Boot ?
Boot = autoconfiguration.
63) IoC dans Spring ?
Injection via conteneur.
64) Objectifs IoC ?
Faible couplage.
65) Design patterns connus ?
Singleton, Factory, MVC.
66) @Controller vs @RestController ?
HTML vs JSON.
67) Scope par défaut ?
Singleton.
68) Types de scopes ?
singleton, prototype, request…
69) Injection dépendance & faible couplage ?
Moins de dépendance directe.