■ 50 Questions/Réponses – Bases de Java
1. Qu’est-ce que Java ?
➡■ Un langage de programmation orienté objet, portable, sécurisé et exécuté sur la JVM.
2. Que signifie JVM ?
➡■ Java Virtual Machine, elle exécute le bytecode Java indépendamment du système
d’exploitation.
3. Différence entre JDK, JRE et JVM ?
➡■ JDK : kit de développement (compiler + outils). JRE : environnement d’exécution
(bibliothèques + JVM). JVM : exécute le bytecode.
4. Qu’est-ce qu’une variable ?
➡■ Un espace mémoire nommé pour stocker une valeur.
5. Quels sont les 8 types primitifs en Java ?
➡■ byte, short, int, long, float, double, char, boolean.
6. Différence entre type primitif et objet ?
➡■ Primitif : valeur brute (ex. int). Objet : instance d’une classe (ex. Integer).
7. Que signifie le mot-clé final appliqué à une variable ?
➡■ La valeur ne peut plus être modifiée (constante).
8. Quelle est la valeur par défaut d’un boolean ?
➡■ false.
9. Comment déclare-t-on une constante en Java ?
➡■ Avec final, ex. : final int AGE = 20;.
10. Quelle est la différence entre == et .equals() ?
➡■ == compare les adresses mémoire (références). .equals() compare le contenu (si redéfini).
11. Quels sont les 3 types de boucles en Java ?
➡■ for, while, do…while.
12. Différence entre while et do…while ?
➡■ while teste avant d’exécuter, do…while exécute au moins une fois.
13. Qu’est-ce qu’une instruction switch ?
➡■ Une structure conditionnelle qui compare une variable à plusieurs cas.
14. Que fait l’instruction break ?
➡■ Elle interrompt une boucle ou un switch.
15. Que fait l’instruction continue ?
➡■ Elle saute à l’itération suivante d’une boucle.
16. Quelle est la différence entre if-else et switch ?
➡■ if : conditions complexes. switch : comparaison simple sur une valeur.
17. Que retourne l’opérateur % ?
➡■ Le reste d’une division entière.
18. Qu’est-ce qu’une boucle infinie ?
➡■ Une boucle qui ne s’arrête jamais, ex. while(true) { }.
19. Peut-on imbriquer des boucles ?
➡■ Oui, une boucle peut contenir une autre.
20. À quoi sert l’opérateur ternaire ?: ?
➡■ C’est une forme compacte de if-else. Ex. max = (a>b) ? a : b;.
21. Comment déclare-t-on un tableau en Java ?
➡■ int[] tab = new int[5];.
22. Quelle est la différence entre int[] a et int a[] ?
➡■ Aucune, les deux sont valides, mais int[] a est plus clair.
23. Comment obtenir la taille d’un tableau ?
➡■ Avec [Link].
24. Comment parcourir un tableau avec for-each ?
➡■ for(int x : tab) { [Link](x); }.
25. Comment initialiser directement un tableau ?
➡■ int[] t = {1, 2, 3, 4};.
26. Écrire une boucle pour calculer la somme d’un tableau.
➡■ int s = 0; for(int x : tab) s += x;
27. Comment trouver le maximum d’un tableau ?
➡■ Parcourir et comparer chaque élément avec le max actuel.
28. Quelle est la différence entre Array et ArrayList ?
➡■ Tableau : taille fixe. ArrayList : taille dynamique.
29. Peut-on mélanger différents types dans un tableau ?
➡■ Non, sauf avec Object[].
30. Quelle est la valeur par défaut des cases d’un tableau d’entiers ?
➡■ 0.
31. Qu’est-ce qu’une classe ?
➡■ Un plan de conception pour créer des objets.
32. Qu’est-ce qu’un objet ?
➡■ Une instance d’une classe.
33. Qu’est-ce que l’encapsulation ?
➡■ Protection des données via private et accès par getters/setters.
34. Qu’est-ce qu’un constructeur ?
➡■ Méthode spéciale qui initialise un objet.
35. Peut-on surcharger les constructeurs ?
➡■ Oui, avec différents paramètres.
36. Quelle est la différence entre this et super ?
➡■ this : référence à l’objet courant. super : référence à la classe parente.
37. Qu’est-ce que l’héritage en Java ?
➡■ Mécanisme où une classe hérite des attributs et méthodes d’une autre (extends).
38. Différence entre composition et héritage ?
➡■ Héritage = relation is-a. Composition = relation has-a.
39. Qu’est-ce que le polymorphisme ?
➡■ Capacité d’une méthode/objet à se comporter différemment selon le contexte.
40. Différence entre surcharge (overloading) et redéfinition (overriding) ?
➡■ Surcharge : même nom, paramètres différents (même classe). Redéfinition : même
signature, mais dans une sous-classe.
41. Qu’est-ce qu’une classe abstraite ?
➡■ Classe qui ne peut pas être instanciée et peut contenir des méthodes abstraites.
42. Qu’est-ce qu’une interface ?
➡■ Contrat que les classes doivent respecter avec implements.
43. Différence entre interface et classe abstraite ?
➡■ Interface = 100 % abstraction (avant Java 8). Classe abstraite = peut contenir du code
concret + abstrait.
44. Peut-on hériter de plusieurs classes en Java ?
➡■ Non, héritage multiple interdit, mais possible via plusieurs interfaces.
45. Qu’est-ce que la relation is-a et has-a ?
➡■ is-a = héritage. has-a = composition.
46. Différence entre erreur et exception ?
➡■ Erreur = problème système grave. Exception = problème prévu qu’on peut gérer.
47. Quelle est la syntaxe d’un bloc try-catch-finally ?
➡■ try { ... } catch(Exception e) { ... } finally { ... }
48. Qu’est-ce qu’une exception vérifiée (checked) ?
➡■ Exception obligatoirement gérée avec try-catch (ex. IOException).
49. Donnez un exemple d’exception non vérifiée (unchecked) ?
➡■ ArithmeticException, NullPointerException.
50. Pourquoi dit-on que "tout en Java hérite de Object" ?
➡■ Parce que toutes les classes dérivent implicitement de [Link].