QCMUP.COM

Liste QCM JAVA Corrigé – Partie 10

Entraînez-vous avec des questions corrigées, progressez étape par étape, puis consolidez vos notions grâce aux définitions et explications.

30 questions Réponses expliquées Réviser → Pratiquer
Liste QCM JAVA Corrigé – Partie 10 – JAVA

Les bases du langage Java ne se résument pas à mémoriser des mots-clés : il s’agit surtout de comprendre comment le langage fonctionne, comment il structure les données et comment il exécute les instructions.

Lorsqu’on débute, on rencontre rapidement des notions incontournables comme les types primitifs, les constantes, les boucles, les tableaux, ou encore les principes de la programmation orientée objet.

Ce sont ces fondations qui permettent ensuite d’écrire des programmes fiables et lisibles.

Les QCM proposés dans cette thématique rassemblent justement ces notions essentielles.

Ils évaluent à la fois la syntaxe et les réflexes de programmation : comparer correctement, éviter les erreurs de compilation, choisir une structure de contrôle adaptée, ou comprendre le rôle de la JVM et du ramasse-miettes.

Ce type d’entraînement est très utile en études, en concours et même en entretien, car il mesure la capacité à raisonner proprement et à éviter les erreurs classiques dès les premiers niveaux.

Les bases du langage Java ne se résument pas à mémoriser des mots-clés : il s’agit surtout de comprendre comment le langage fonctionne, comment il structure les données et comment il exécute les instructions.

Lorsqu’on débute, on rencontre rapidement des notions incontournables comme les types primitifs, les constantes, les boucles, les tableaux, ou encore les principes de la programmation orientée objet.

Ce sont ces fondations qui permettent ensuite d’écrire des programmes fiables et lisibles.

Les QCM proposés dans cette thématique rassemblent justement ces notions essentielles.

Ils évaluent à la fois la syntaxe et les réflexes de programmation : comparer correctement, éviter les erreurs de compilation, choisir une structure de contrôle adaptée, ou comprendre le rôle de la JVM et du ramasse-miettes.

Ce type d’entraînement est très utile en études, en concours et même en entretien, car il mesure la capacité à raisonner proprement et à éviter les erreurs classiques dès les premiers niveaux.

QCM 1 Corrigé

Lequel de ces types de données est utilisé pour stocker un seul caractère en Java ?

A. String
B. char
C. byte
D. Character
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Le type primitif 'char' est spécifiquement conçu pour stocker un seul caractère Unicode codé sur 16 bits.

QCM 2 Corrigé

Quelle est la syntaxe correcte pour déclarer une constante entière nommée 'MAX' en Java ?

A. final int MAX = 100;
B. constant int MAX = 100;
C. static int MAX = 100;
D. const int MAX = 100;
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Le mot-clé 'final' indique que la valeur de la variable ne peut plus être modifiée après son initialisation.

QCM 3 Corrigé

Que se passe-t-il si vous essayez d'utiliser une variable locale sans l'avoir initialisée ?

A. La variable prend la valeur 0 par défaut
B. La variable prend la valeur null
C. Le compilateur génère une erreur
D. Le programme plante à l'exécution
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Contrairement aux attributs de classe, les variables locales ne possèdent pas de valeur par défaut et doivent être initialisées.

QCM 4 Corrigé

Quel opérateur est utilisé pour comparer l'égalité de deux valeurs primitives ?

A. =
B. equals()
C. is
D. ==
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
L'opérateur '==' vérifie l'égalité des valeurs pour les types primitifs (int, double, etc.).

QCM 5 Corrigé

Quelle est la sortie de l'expression suivante : 10 / 4 (en utilisant des entiers) ?

A. 2.5
B. 2
C. 2.0
D. 3
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
En Java, la division entre deux entiers produit un résultat entier en tronquant la partie décimale.

QCM 6 Corrigé

Lequel de ces mots-clés permet de sortir immédiatement d'une boucle ?

A. stop
B. exit
C. break
D. return
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
L'instruction 'break' interrompt l'exécution de la boucle la plus proche et passe à l'instruction suivante.

QCM 7 Corrigé

Dans une structure 'switch', quel mot-clé définit le bloc exécuté si aucune correspondance n'est trouvée ?

A. else
B. otherwise
C. default
D. fallback
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Le bloc 'default' est optionnel mais sert à gérer tous les cas non spécifiés explicitement par un 'case'.

QCM 8 Corrigé

Quelle boucle est la mieux adaptée lorsque le nombre d'itérations est connu à l'avance ?

A. for
B. while
C. do-while
D. foreach
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
La boucle 'for' regroupe l'initialisation, la condition et l'incrémentation, ce qui la rend idéale pour les compteurs.

QCM 9 Corrigé

Quelle est la différence principale entre 'while' et 'do-while' ?

A. While est plus rapide
B. Do-while s'exécute au moins une fois
C. While ne peut pas utiliser de booléens
D. Do-while est réservé aux objets
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Dans une boucle 'do-while', la condition est testée à la fin du bloc, garantissant une première exécution.

QCM 10 Corrigé

Comment accède-t-on au premier élément d'un tableau nommé 'tab' ?

A. tab(0)
B. tab.first()
C. tab[0]
D. tab[1]
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
En Java, les indices de tableaux commencent à 0 et on utilise les crochets pour l'accès.

QCM 11 Corrigé

Quel mot-clé est utilisé pour déclarer qu'une méthode ne renvoie aucune valeur ?

A. null
B. empty
C. static
D. void
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Le type de retour 'void' signifie que la méthode effectue une action sans retourner de résultat à l'appelant.

QCM 12 Corrigé

Quelle est la signature correcte de la méthode principale (main) ?

A. public void main(String args[])
B. public static void main(String args[])
C. static public int main(String[] args)
D. public static void main()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La méthode doit être publique, statique, retourner void et accepter un tableau de chaînes de caractères.

QCM 13 Corrigé

Qu'est-ce que l'encapsulation en Java ?

A. Le fait d'hériter d'une autre classe
B. Le regroupement de données et de méthodes dans une classe en restreignant l'accès
C. La compilation du code en bytecode
D. L'utilisation de plusieurs méthodes avec le même nom
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
L'encapsulation protège l'intégrité des données en utilisant des modificateurs d'accès comme 'private'.

QCM 14 Corrigé

Quel mot-clé permet de faire référence à l'instance courante de la classe ?

A. this
B. super
C. self
D. instance
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
'this' est utilisé pour lever les ambiguïtés entre attributs et paramètres ou pour passer l'objet actuel.

QCM 15 Corrigé

Lequel de ces modificateurs d'accès est le plus restrictif ?

A. public
B. protected
C. private
D. default (package-private)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Un membre 'private' n'est accessible qu'à l'intérieur de la classe où il est défini.

QCM 16 Corrigé

En Java, une classe peut hériter de combien de classes parentes ?

A. Une seule
B. Deux
C. Autant qu'elle veut
D. Zéro
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Java ne supporte pas l'héritage multiple de classes pour éviter les conflits de diamant.

QCM 17 Corrigé

Quel mot-clé est utilisé pour implémenter l'héritage entre deux classes ?

A. implements
B. inherits
C. extends
D. using
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
On utilise 'extends' pour qu'une classe enfant hérite des propriétés et méthodes d'une classe parente.

QCM 18 Corrigé

Que fait le mot-clé 'super' ?

A. Il crée une instance de la classe
B. Il appelle un membre de la classe parente
C. Il détruit un objet
D. Il arrête le programme
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
'super' permet d'accéder aux constructeurs ou méthodes de la classe de base (parent).

QCM 19 Corrigé

Comment appelle-t-on deux méthodes avec le même nom mais des paramètres différents ?

A. La redéfinition (Overriding)
B. L'encapsulation
C. La surcharge (Overloading)
D. L'abstraction
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
La surcharge permet de définir plusieurs versions d'une même action avec des entrées différentes.

QCM 20 Corrigé

Quelle classe est la classe parente de toutes les classes en Java ?

A. Main
B. Base
C. Root
D. Object
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Toutes les classes en Java descendent implicitement de la classe 'java.lang.Object'.

QCM 21 Corrigé

Lequel de ces éléments n'est PAS un pilier de la Programmation Orientée Objet ?

A. L'héritage
B. Le polymorphisme
C. La compilation
D. L'abstraction
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
La compilation est un processus technique, pas un concept fondamental de la POO.

QCM 22 Corrigé

Comment compare-t-on le contenu textuel de deux objets String ?

A. s1 == s2
B. s1.equals(s2)
C. s1.compare(s2)
D. s1.is(s2)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La méthode 'equals()' compare les caractères un à un, tandis que '==' compare les adresses mémoire.

QCM 23 Corrigé

Quel est le rôle du 'Garbage Collector' en Java ?

A. Compiler le code plus vite
B. Vérifier les erreurs de syntaxe
C. Libérer automatiquement la mémoire des objets non utilisés
D. Sécuriser le réseau
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Le ramasse-miettes gère automatiquement la désallocation mémoire pour éviter les fuites.

QCM 24 Corrigé

Quelle est la convention de nommage pour une constante en Java ?

A. maConstante
B. MaConstante
C. MA_CONSTANTE
D. _ma_constante
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Les constantes doivent être écrites en majuscules avec des tirets bas pour séparer les mots.

QCM 25 Corrigé

Lequel de ces packages est importé automatiquement dans tout programme Java ?

A. java.util
B. java.lang
C. java.io
D. java.net
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Le package 'java.lang' contient les classes essentielles comme String, Math ou System.

QCM 26 Corrigé

Que signifie le terme 'JVM' ?

A. Java Variable Manager
B. Java Virtual Machine
C. Java Visual Maker
D. Just Version Model
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La JVM est l'environnement qui exécute le bytecode Java sur n'importe quel système d'exploitation.

QCM 27 Corrigé

Comment déclare-t-on une méthode qui appartient à la classe et non à une instance ?

A. public class méthode()
B. public global méthode()
C. public final méthode()
D. public static méthode()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Le mot-clé 'static' permet d'appeler une méthode sans créer d'objet de la classe.

QCM 28 Corrigé

Quel caractère est utilisé pour concaténer deux chaînes de caractères ?

A. &
B. .
C. +
D. concat
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
L'opérateur '+' est surchargé en Java pour permettre l'assemblage de plusieurs String.

QCM 29 Corrigé

Quelle est la taille par défaut d'un tableau après sa déclaration 'int[] t = new int[5]' ?

A. 0
B. 5
C. Variable
D. Elle n'est pas définie
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La taille d'un tableau est fixée au moment de l'instanciation avec l'opérateur 'new'.

QCM 30 Corrigé

Qu'est-ce qu'une erreur de compilation ?

A. Un bug qui arrive pendant que l'utilisateur joue
B. Une erreur détectée par l'IDE ou le compilateur avant l'exécution
C. Un problème de connexion internet
D. Un manque de mémoire vive
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Les erreurs de compilation (syntaxe, types) empêchent la création du fichier .class.

Mots & Définitions
Consultez les définitions des termes importants.

char est un type primitif conçu pour stocker un seul caractère. Il sert notamment à représenter des lettres, des chiffres ou des symboles. En Java, un char correspond à un codage Unicode sur 16 bits.

Une constante est une variable dont la valeur ne doit pas changer après initialisation. En Java, on la déclare avec le mot-clé final, souvent associé à static lorsqu’elle doit être partagée. Elle améliore la lisibilité et évite des modifications accidentelles.

Une variable locale est déclarée à l’intérieur d’une méthode ou d’un bloc. Elle n’a pas de valeur par défaut automatique et doit être initialisée avant utilisation. Sa portée est limitée au bloc où elle est définie.

Une erreur de compilation est détectée avant l’exécution du programme, lors de l’analyse du code par le compilateur. Elle signale une syntaxe incorrecte ou un code incohérent, comme une variable non initialisée. Tant qu’elle existe, le programme ne peut pas être lancé.

L’opérateur == compare l’égalité entre deux valeurs primitives. Avec des objets, il compare généralement les références, pas le contenu. C’est pourquoi il faut l’utiliser avec prudence selon le type manipulé.

La division entière est une division entre deux entiers qui ne conserve que la partie entière du résultat. La partie décimale est simplement ignorée. Ce comportement peut surprendre si l’on attend un résultat à virgule.

break interrompt immédiatement une boucle ou un bloc switch. Il sert à sortir d’un traitement dès qu’une condition est satisfaite. C’est un outil simple pour éviter des itérations inutiles.

default définit le comportement de secours dans un switch quand aucun case ne correspond. Il permet de gérer les situations non prévues explicitement. Son usage rend le code plus robuste.

La boucle for est adaptée lorsque le nombre d’itérations est connu à l’avance. Elle regroupe l’initialisation, la condition et l’incrémentation dans une même structure. Elle est très utilisée pour parcourir des tableaux.

La boucle do-while exécute toujours le bloc au moins une fois. La condition est testée après l’exécution du bloc. Elle est utile quand on veut effectuer une action avant de vérifier une condition.

Un tableau est une structure de données qui stocke une suite d’éléments du même type. On y accède par un indice qui commence à 0. Sa taille est fixée lors de sa création.

void indique qu’une méthode ne renvoie aucune valeur. Elle exécute un traitement puis se termine sans résultat à retourner. C’est courant pour des méthodes d’affichage ou de mise à jour.

La méthode main est le point d’entrée standard d’un programme Java. Elle est appelée par la JVM au démarrage de l’application. Sa signature doit respecter un format précis pour être reconnue.

L’encapsulation consiste à regrouper données et comportements dans une classe, tout en contrôlant l’accès aux attributs. Elle protège l’état interne d’un objet et impose des accès via des méthodes. Cela rend le code plus fiable et plus maintenable.

this fait référence à l’instance courante d’une classe. Il est utilisé pour distinguer un attribut d’un paramètre portant le même nom. Il permet aussi d’appeler d’autres constructeurs de la même classe.

private est le modificateur d’accès le plus restrictif. Il rend un membre accessible uniquement dans sa propre classe. Il sert à protéger les détails internes et renforcer l’encapsulation.

L’héritage permet à une classe d’enrichir une autre classe en reprenant ses membres accessibles. En Java, on l’exprime avec extends et une classe ne peut avoir qu’une seule super-classe. Il favorise la réutilisation et la spécialisation du code.

super fait référence à la classe parente dans une sous-classe. Il permet d’appeler un constructeur du parent ou d’accéder à une version parente d’une méthode. Il est utile lorsqu’une méthode est redéfinie.

La surcharge consiste à définir plusieurs méthodes portant le même nom dans une classe. Elles se distinguent par leur liste de paramètres. Cela permet d’offrir plusieurs façons d’appeler une même action.

Object est la classe racine de Java. Toutes les classes héritent indirectement de Object. Elle fournit des comportements communs comme l’affichage, la comparaison et l’identification d’un objet.

Les piliers classiques de la programmation orientée objet sont l’encapsulation, l’héritage, le polymorphisme et l’abstraction. Ils structurent la conception des programmes autour d’objets et de responsabilités. Ils facilitent la réutilisation et l’évolution du code.

equals() est la méthode recommandée pour comparer le contenu de deux String. Elle vérifie l’égalité textuelle, pas l’adresse mémoire. C’est la bonne pratique pour comparer des chaînes en Java.

Le Garbage Collector gère automatiquement la mémoire en Java. Il libère l’espace occupé par les objets qui ne sont plus référencés. Cela réduit les risques de fuites mémoire, même si une bonne conception reste nécessaire.

Par convention, une constante en Java est écrite en majuscules avec des underscores, comme MA_CONSTANTE. Cette écriture la rend immédiatement identifiable. Elle est souvent associée à static final.

java.lang est un package importé automatiquement par Java. Il contient des classes fondamentales comme String, Math, Object ou Integer. Grâce à cet import implicite, on peut utiliser ces classes sans déclaration d’import.

La JVM est la machine virtuelle qui exécute les programmes Java. Elle interprète le bytecode de manière indépendante du système d’exploitation. Elle est au cœur de la portabilité de Java.

Une méthode static appartient à la classe et non aux objets. Elle peut être appelée sans créer d’instance. Elle est souvent utilisée pour des utilitaires ou le point d’entrée main.

La concaténation consiste à assembler des chaînes de caractères. En Java, elle se fait le plus souvent avec l’opérateur +. Elle permet de construire des messages ou des textes dynamiques.

La taille d’un tableau est fixée à sa création et correspond au nombre de cases disponibles. Par exemple, new int[5] crée un tableau de 5 éléments. Cette taille ne peut pas être modifiée ensuite.

À propos de ce QCM

Cette série de QCM couvre un ensemble de notions fondamentales qui reviennent constamment en Java.

D’abord, elle insiste sur la distinction entre types primitifs et objets.

Un type comme char sert à stocker un caractère, tandis que String est un objet.

Cette différence a des conséquences sur la comparaison : pour les primitives, == compare des valeurs, alors que pour les chaînes, equals() doit être utilisé pour comparer le contenu.

Les QCM abordent aussi la rigueur imposée par le compilateur.

Une variable locale doit être initialisée avant utilisation, sinon une erreur de compilation apparaît.

Cette contrainte oblige à écrire un code plus sûr.

La notion de constante, définie avec final, renforce cette logique : on fixe une valeur pour éviter des modifications involontaires.

Côté calculs, les questions rappellent un piège courant : la division entière tronque la partie décimale.

Comprendre ce comportement évite des résultats inattendus.

Les structures de contrôle sont également au centre des QCM : break permet de sortir d’une boucle, default sécurise un switch, et le choix entre for, while et do-while dépend de la manière dont on veut gérer la répétition, notamment le fait qu’un do-while s’exécute toujours au moins une fois.

Les tableaux sont un autre thème clé : ils sont indexés à partir de 0 et leur taille est fixe dès la création.

Cela développe des réflexes de parcours et de gestion d’indices.

Enfin, la dimension orientée objet apparaît avec encapsulation, héritage, super et la classe Object, ainsi qu’avec la JVM et le Garbage Collector, qui expliquent la portabilité et la gestion automatique de la mémoire.

Conclusion

Ces QCM proposent un entraînement solide sur les fondamentaux Java, en combinant syntaxe, logique et notions orientées objet.

Ils aident à consolider des réflexes essentiels : comparer correctement, anticiper les erreurs de compilation, choisir la bonne boucle, manipuler des tableaux sans erreur et comprendre le rôle de la JVM.

En pratiquant régulièrement, l’utilisateur gagne en précision, en confiance et en efficacité.

Cette progression constitue une base indispensable pour aborder des chapitres plus avancés et réussir sereinement examens, concours ou projets concrets en Java.