QCM Java – Types génériques

QCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses sur Java comprennent divers sujets. Et sont tirés d’un vrai entretien écrit et certaines parties sont en direct. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son test sur Java .
 
 

1. Pourquoi la généricité en Java est-ils utilisé?

A Elle rend le code plus rapide

B Elle rend le code plus optimisé et plus lisible

C Elle ajoute la stabilité à votre code en rendant vos bugs détectables à l’exécution

D Elle ajoute la stabilité à votre code en rendant vos bugs détectables au moment de la compilation

D
Le code qui utilise la généricité a de nombreux avantages par rapport au code non générique: Contrôles de type plus forts au moment de la compilation. Un compilateur Java applique un contrôle de type fort au code générique et émet des erreurs si le code enfreint la sécurité au niveau de typage. Il est plus facile de corriger les erreurs de compilation au lieu de corriger les erreurs d’exécution, ce qui peut être difficile à trouver.

 

2. Lequel de ce type de paramètres est utilisé pour qu’une classe générique renvoie et accepte n’importe quel type d’objet?

A V

B T

C N

D K

B

Par convention, les noms de paramètre de type générique sont des lettres simples majuscules. Pour une bonne raison: sans cette convention, il serait difficile de faire la différence entre une variable de type et un nom de classe ou d’interface.
Les noms de paramètre de type générique les plus couramment utilisés sont:

  • E – est censé être un element (largement utilisé par Java Collections Framework)
  • K – est censé être une clé (dans une Map <K, V>)
  • N – est censé être un nombre
  • T – est censé être un type
  • V – est censé être une valeur (en tant que valeur de retour ou une valeur mappée)
  • S, U, V etc. – 2ème, 3ème, 4ème types

 

Questions piège en Programmation Orientée ObjetQuestions piège sur la Programmation Orientée Objet – JAVA – Partie 1Les questions pouvant être posées par des recruteurs sont nombreuses. Ce sont quelques-unes des questions les plus fréquemment posées. Prenez le temps de lire ces…Lire plus
3. Lequel de ces paramètres type est utilisé pour qu’une classe générique renvoie et accepte un nombre?

A V

B T

C N

D K

C

 

4. Lequel de ces types de référence suivants ne peut pas être générique?

A Classe interne

B Interface

C Classe interne anonyme

D Toutes les réponses sont bonnes

C
Ce n’est pas possible. Puisqu’une classe anonyme est censée être utilisée qu’une seule fois, à quoi sert d’étre génirique que vous ne pouvez jamais utiliser ou hériter. Vous ne pouvez pas instancier une classe anonyme plus d’une fois à partir d’un autre emplacement de code que celui qui le définit.

 

5. Laquelle des affirmations suivantes est incorrecte concernant l’utilisation de la généricité et de types paramétrés en Java?

A Lors de la conception de votre propre classe de collections, les types génériques et paramétrés vous permettent d’obtenir une sécurité de type avec une seule définition de classe plutôt que de définir plusieurs classes

B Les types génériques et paramétrés supprime le besoin de conversions descendantes lors de l’utilisation de collections Java

C La généricité en Java assurent la sécurité des types en transférant davantage de responsabilités de vérification de type au compilateur

D Toutes les réponses sont vrais

A

 

 
QCM-JavaTestez vos connaissances – QCM Java corrigé – Partie 1QCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus
6. Laquelle de ces méthodes est correcte pour définir une classe générique?

A class MaClasse2 <T1, T2, ....., Tn> { /* … */ }

B class MaClasse4 {T1, T2, …, Tn} { /* … */ }

C class MaClasse3 [T1, T2, …, Tn] { /* … */ }

D class MaClasse1(T1, T2, …, Tn) { /* … */ }

A

 

7. Quelle est la sortie de ce programme?
import java.util.*;

class Pilegeneric <E>
{
      Stack <E> pile = new Stack <E>();
      
      public E pop()
      {
          E obj = pile.pop();
          return obj;
      }
      public void push(E obj) 
      {
         pile.push(obj);
      }
}
public class Test
{
     public static void main(String args[])
     {
         Pilegeneric <String> pg = new Pilegeneric <String>();
         pg.push("Hello");
         System.out.println(pg.pop());
     }
}

A Hello

B Erreur de compilation

C obj478962

D 44

A

La sortie:

	
$ javac Test.javac
$ java Test
Hello

 

8. Quelle est la sortie de ce programme?
import java.util.*;

class Pilegeneric <E> 
{
     Pile <E> pile = new Pile <E>();
     public E pop()
     {
          E obj = pile.pop();
          return obj;
     }
     public void push(E obj)
     {
         pile.push(obj);
     }
}

public class Test
{
     public static void main(String args[])
     {
         Pilegeneric <Integer> pg = new Pilegeneric <Integer>();
         pg.push(44);
         System.out.println(pg.pop());
     }
}

A Erreur de compilation

B Erreur d’exécution

C obj478962

D 44

D

La sortie:

	
$ javac Test.javac
$ java Test
44

 

QCM-JavaQCM Java – Les énumérationsQCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus
9. Quelle est la sortie de ce programme?
import java.util.*;


class Pilegeneric <E>
{
    Pile <E> pile = new Pile <E>();
    public void push(E obj)
    {
         pile.push(obj);
    }
    public E pop()
    {
         E obj = pile.pop();
         return obj;
    }
}

public class Test
{
    public static void main(String args[])
    {
         Pilegeneric <String> pg = new Pilegeneric <String>();
         pg.push("Hello");
         System.out.print(pg.pop() + " ");
         Pilegeneric <Integer> pg  = new Pilegeneric <Integer>();
         pg.push(44);
         System.out.println(pg.pop());
     }
}

A Hello 44

B Erreur de compilation

C Hello

D 44

B

L’objet pg de Pilegeneric est défini pour contenir un paramètre de type string mais nous envoyons un paramètre de type integer, ce qui entraîne une erreur de compilation. La sortie est la suivante:

$ javac Test.javac
$ java Test
error: incompatible types: int cannot be converted to String

 

 
 

2 réflexions sur “QCM Java – Types génériques

  • octobre 31, 2019 à 10:03
    Permalien

    Bonjour,
    La réponse du question 7 c’est incorrect.
    Merci de corriger.

    Répondre
    • octobre 31, 2019 à 2:23
      Permalien

      Merci, pour cette remarque 🙂

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *