QCM Java 8 Corrigé – Partie 1

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. Les Lambdas introduites dans Java 8 nous permettent de traiter_____

A Données en tant que code

B Code en tant que données

C Aucune de ces réponses n’est vraie.

D Tout les réponses sont vrais

B
Les expressions lambda vous permettent de traiter une fonctionnalité comme un argument de méthode = code en tant que données. Cela signifie que le code de votre programme que vous écrivez est également une donnée qui peut être passée en argument à une autre méthode et manipulée par un programme. Exemple:

ArrayList<Integer> arr = new ArrayList<Integer>();
arr.add(1);
arr.add(2);
arr.add(3);
Consumer<Integer> method = (n) -> { System.out.println(n); };
arr.forEach(method); //méthode passée en argument (code en tant que données)

Sortie:

1
2
3

 

 

2. L’API Streams nouvellement introduite est disponible dans quel package de java 8?

A java.io.streams

B java.io.stream

C java.util.streams

D java.util.stream

D
L’API Streams, introduite avec Java 8, est disponible dans le package java.util.stream.

Elle permet de traiter des collections de données de manière déclarative, en enchaînant des opérations telles que le filtrage, la transformation, le tri ou l’agrégation, sans avoir à écrire de boucles explicites.

L’API Streams s’inspire du fonctionnement des requêtes SQL, où les données sont manipulées à l’aide d’une suite d’opérations.

 

 

3. Quelle classe peut être utilisée à la place de « System.getCurrentTimeMillis() » pour obtenir une date et une heure dans Java 8?

A Clock

B Timer

C Time

D Date

A
Exemple:

Clock clock = Clock.systemDefaultZone();
Instant instant = clock.instant();
System.out.println(instant);

Sortie:

2023-01-12T02:45:25.222Z

 

 

4. Les expressions lambda dans java 8 sont basées sur _____

A Programmation procédurale

B Programmation fonctionnelle

C Programmation des données

D Tout les réponses sont vrais

B
Les expressions lambda sont comme un moyen de supporter la programmation fonctionnelle en Java. La programmation fonctionnelle est un paradigme qui permet de programmer à l’aide des expressions, c’est-à-dire de déclarer des fonctions, de passer des fonctions comme arguments et d’utiliser des fonctions comme des instructions (appelées des « expressions » en Java 8).

 

 

5. Combien de méthodes abstraites une interface fonctionnelle peut-elle contenir en Java 8 ?

A 3

B 2

C 1

D 0

C
Une interface fonctionnelle est une interface qui contient une seule méthode abstraite. C’est cette unique méthode qui définit la fonctionnalité de l’interface.

 

 
 

6. Dans les interfaces Java 8, les méthodes peuvent être ______

A default

B abstract

C Les deux A et B sont vrais.

D Aucune de ces réponses n’est vraie.

C
Avant Java 8, une interface ne pouvait contenir que des méthodes abstraites (à l’exception des constantes).

À partir de Java 8, les interfaces ont été enrichies avec les méthodes default, qui possèdent une implémentation par défaut. Cette évolution permet d’ajouter de nouvelles méthodes à une interface sans casser la compatibilité avec les classes qui l’implémentent.

Voir un exemple de méthode default et abstract en Java.

 

 

7. Lequel des éléments suivants n’est pas introduit avec Java 8?

A API Stream

B Spliterator

C Lambda Expression

D Serialization

D
La sérialisation (Serialization) n’est pas une nouveauté de Java 8. Elle existe depuis les premières versions de Java et permet de convertir un objet Java en une suite d’octets afin de pouvoir: l’enregistrer dans un fichier, le transmettre sur un réseau ou le stocker dans une base de données.

 

 

8. Quel est le type de retour d’une expression lambda en Java 8 ?

A String

B Object

C Function

D void

C
En Java 8, une expression lambda est une manière concise d’implémenter une interface fonctionnelle (une interface qui ne possède qu’une seule méthode abstraite).

Lorsque l’on utilise une expression lambda pour représenter une fonction qui reçoit un ou plusieurs arguments et retourne une valeur, elle est généralement affectée à une interface fonctionnelle telle que Function<T, R>. Par exemple :

Function<String, Integer> longueur = s -> s.length();
System.out.println(longueur.apply("Java")); // Affiche 4

 

 

9. Quelle est la nouvelle méthode introduite dans java 8 pour parcourir une collection?

A List.for()

B StringList.forEach()

C foreach(String i : StringList)

D for(String i : StringList)

B
En Java 8, l’interface Iterable a introduit la méthode forEach(), qui permet de parcourir une collection de manière plus concise en utilisant une expression lambda ou une référence de méthode.

List<String> liste = Arrays.asList("Alex", "Bob", "Jean");
liste.forEach(nom -> System.out.println(nom));
//OU BIEN
liste.forEach(System.out::println);

 

 

10. Quels sont les deux types de Streams proposés par Java 8?

A Aléatoire et synchronisé

B Parallèle et aléatoire

C Séquentiel et aléatoire

D Séquentiel et parallèle

D
Le Stream séquentiel et le Stream parallèle sont deux types de Stream fournis par Java 8.

Stream<Integer> sequential = liste.stream();
Stream<Integer> parallel = liste.parallelStream();

Un Stream séquentiel traite les éléments un par un, dans l’ordre de la collection.
Un Stream parallèle traite les éléments simultanément sur plusieurs threads, en utilisant le Fork/Join Framework de Java.

 

 

exercice-java-corrige

Laisser un commentaire

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