• Qu’est-ce que l’encapsulation en Java ?

      • A. C’est une technique qui permet de cacher les détails de mise en œuvre.
      • B. C’est une technique qui permet d’associer des méthodes à des objets.
      • C. C’est une technique qui permet de créer de nouvelles classes à partir de classes existantes.
      • D. C’est une technique qui permet d’organiser le code en modules.
      • Réponse : A. L’encapsulation est un principe fondamental de la programmation orientée objet qui permet de cacher les détails de mise en œuvre d’un objet en regroupant ses données et ses méthodes dans une seule entité.
    • Quelle est la syntaxe correcte pour hériter d’une classe en Java ?

      • A. class MyClass inherits OtherClass {}
      • B. class MyClass : OtherClass {}
      • C. class MyClass extends OtherClass {}
      • D. class MyClass -> OtherClass {}
      • Réponse : C. En Java, l’héritage est réalisé en utilisant le mot-clé extends. La syntaxe correcte pour hériter d’une classe est class MyClass extends OtherClass {}.
    • Quelle est la valeur par défaut d’un attribut de type boolean dans une classe Java ?

      • A. null
      • B. false
      • C. 0
      • D. true
      • Réponse : B. En Java, les attributs de type boolean ont une valeur par défaut de false. Cela signifie que si vous ne spécifiez pas explicitement une valeur pour un attribut boolean lors de la création d’un objet, sa valeur sera automatiquement initialisée à false.
    • Quelle est la différence entre les méthodes statiques et les méthodes d’instance en Java ?

      • A. Les méthodes statiques appartiennent à la classe, tandis que les méthodes d’instance appartiennent à l’objet.
      • B. Les méthodes statiques ne peuvent pas être surchargées, tandis que les méthodes d’instance peuvent l’être.
      • C. Les méthodes statiques ne peuvent pas accéder aux variables d’instance, tandis que les méthodes d’instance le peuvent.
      • D. Les méthodes statiques ne peuvent pas être héritées, tandis que les méthodes d’instance le peuvent.
      • Réponse : A. En Java, il existe deux types de méthodes : les méthodes statiques et les méthodes d’instance. Les méthodes statiques appartiennent à la classe et sont appelées sur la classe elle-même, tandis que les méthodes d’instance appartiennent à l’objet et sont appelées sur l’objet.
    • Quelle est la différence entre l’héritage et la composition en Java ?

      • A. L’héritage permet de créer de nouvelles classes à partir de classes existantes, tandis que la composition permet d’utiliser des objets existants pour créer de nouveaux objets.
      • B. L’héritage permet d’utiliser des objets existants pour créer de nouveaux objets, tandis que la composition permet de créer de nouvelles classes à partir de classes existantes.
      • C. L’héritage et la composition sont des techniques similaires pour créer des objets complexes.
      • D. L’héritage et la composition sont des techniques opposées pour créer des objets complexes.
      • Réponse : A. En Java, il existe deux techniques principales pour créer des objets complexes : l’héritage et la composition. L’héritage permet de créer de nouvelles classes à partir de classes existantes en réutilisant leur code et en ajoutant ou modifiant des fonctionnalités, tandis que la composition permet d’utiliser des objets existants comme composants pour créer de nouveaux objets plus complexes.
    • Quelle est la différence entre les interfaces et les classes abstraites en Java ?

      • A. Les interfaces ne peuvent contenir que des méthodes abstraites, tandis que les classes abstraites peuvent contenir des méthodes concrètes et abstraites.
      • B. Les interfaces ne peuvent pas être instanciées, tandis que les classes abstraites le peuvent.
      • C. Les interfaces ne peuvent pas avoir de constructeurs, tandis que les classes abstraites le peuvent.
      • D. Les interfaces ne peuvent pas avoir d’état, tandis que les classes abstraites le peuvent.
      • Réponse : A. En Java, il existe deux types de classes qui ne peuvent pas être instanciées : les interfaces et les classes abstraites. Les interfaces ne peuvent contenir que des méthodes abstraites (c’est-à-dire des méthodes sans corps) et des constantes, tandis que les classes abstraites peuvent contenir des méthodes concrètes (c’est-à-dire des méthodes avec un corps) et des variables d’instance.
    • Quelle est la différence entre un constructeur et une méthode en Java ?

      • A. Un constructeur est appelé lorsqu’un objet est créé, tandis qu’une méthode peut être appelée à tout moment.
      • B. Un constructeur ne peut pas renvoyer de valeur, tandis qu’une méthode peut renvoyer une valeur ou void.
      • C. Un constructeur doit avoir le même nom que la classe, tandis qu’une méthode peut avoir n’importe quel nom.
      • D. Un constructeur ne peut pas être hérité, tandis qu’une méthode peut l’être.
      • Réponse : A. En Java, un constructeur est une méthode spéciale qui est appelée lorsqu’un objet est créé. Il a le même nom que la classe et ne renvoie aucune valeur (même pas void). Son but est d’initialiser les variables d’instance de l’objet avec des valeurs par défaut ou des valeurs fournies lors de la création de l’objet.
    • Quelle est la différence entre un tableau et une liste en Java ?

      • A. Un tableau a une taille fixe, tandis qu’une liste peut changer de taille dynamiquement.
      • B. Un tableau peut contenir des éléments de types différents, tandis qu’une liste ne peut contenir que des éléments du même type.
      • C. Un tableau peut être trié en utilisant la méthode sort(), tandis qu’une liste ne peut pas être triée directement.
      • D. Un tableau peut être parcouru en utilisant un indice numérique, tandis qu’une liste doit être parcourue en utilisant un itérateur ou une boucle for-each.
      • Réponse : A. En Java, il existe deux types principaux de structures de données pour stocker des collections d’éléments : les tableaux et les listes. Un tableau a une taille fixe qui doit être spécifiée lors de sa création et ne peut pas être modifiée par la suite, tandis qu’une liste peut changer de taille dynamiquement en ajoutant ou supprimant des éléments.
    • Quelle est la différence entre les méthodes equals() et == en Java ?

      • A. La méthode equals() compare les valeurs des objets, tandis que l’opérateur == compare les références des objets.
      • B. La méthode equals() peut être surchargée, tandis que l’opérateur == ne peut pas l’être.
      • C. La méthode equals() peut être utilisée pour comparer des objets de types différents, tandis que l’opérateur == ne peut être utilisé que pour comparer des objets du même type.
      • D. La méthode equals() renvoie un booléen, tandis que l’opérateur == renvoie un entier.
      • Réponse : A. En Java, il existe deux façons de comparer des objets : en utilisant la méthode equals() ou l’opérateur ==. La méthode equals() compare les valeurs des objets pour déterminer s’ils sont égaux ou non, tandis que l’opérateur == compare les références des objets pour déterminer s’ils font référence au même objet en mémoire ou non.
    • Quelle est la différence entre les méthodes final, finally et finalize en Java ?

      • A. La méthode final empêche une classe d’être héritée, la méthode finally est utilisée dans un bloc try-catch pour exécuter du code indépendamment du résultat de l’essai, et la méthode finalize est appelée par le garbage collector avant qu’un objet ne soit détruit.
      • B. La méthode final empêche une méthode d’être surchargée, la méthode finally est utilisée dans un bloc try-catch pour exécuter du code indépendamment du résultat de l’essai, et la méthode finalize est appelée par le garbage collector avant qu’un objet ne soit détruit.
      • C. La méthode final empêche une variable d’être modifiée, la méthode finally est utilisée dans un bloc try-catch pour exécuter du code indépendamment du résultat de l’essai, et la méthode finalize est appelée par le garbage collector avant qu’un objet ne soit détruit.
      • D. La méthode final empêche une classe d’être instanciée, la méthode finally est utilisée dans un bloc try-catch pour exécuter du code indépendamment du résultat de l’essai, et la méthode finalize est appelée par le garbage collector avant qu’un objet ne soit détruit.
      • Réponse : B. En Java, le mot-clé final peut être utilisé pour empêcher une méthode d’être surchargée par une sous-classe. Le bloc finally est utilisé dans un bloc try-catch pour exécuter du code indépendamment de savoir si une exception a été levée ou non. La méthode finalize() est une méthode spéciale qui est appelée par le garbage collector juste avant qu’un objet ne soit détruit pour permettre à l’objet de nettoyer les ressources qu’il a allouées.
    • Quelle est la différence entre les méthodes public, protected et private en Java ?

      • A. Les méthodes public peuvent être accédées depuis n’importe où, les méthodes protected peuvent être accédées depuis la même classe ou ses sous-classes, et les méthodes private ne peuvent être accédées que depuis la même classe.
      • B. Les méthodes public peuvent être surchargées, les méthodes protected ne peuvent pas être surchargées, et les méthodes private ne peuvent pas être héritées.
      • C. Les méthodes public peuvent être héritées, les méthodes protected ne peuvent pas être héritées, et les méthodes private ne peuvent pas être surchargées.
      • D. Les méthodes public peuvent être accédées depuis n’importe où, les méthodes protected ne peuvent être accédées que depuis la même classe ou ses sous-classes, et les méthodes private ne peuvent être accédées que depuis la même classe ou ses sous-classes.
      • Réponse : A. En Java, il existe trois niveaux d’accès principaux pour les méthodes : public, protected et private. Les méthodes public sont accessibles de n’importe où dans le programme. Les méthodes protected sont accessibles uniquement à partir de la même classe ou de ses sous-classes. Les méthodes private sont accessibles uniquement à partir de la même classe.
    • Quelle est la différence entre les opérateurs & et && en Java ?

      • A. L’opérateur & effectue une opération AND bit à bit, tandis que l’opérateur && effectue une opération AND logique à court-circuit.
      • B. L’opérateur & effectue une opération OR bit à bit, tandis que l’opérateur && effectue une opération OR logique à court-circuit.
      • C. L’opérateur & effectue une opération XOR bit à bit, tandis que l’opérateur && effectue une opération XOR logique à court-circuit.
      • D. L’opérateur & effectue une opération NOT bit à bit, tandis que l’opérateur && effectue une opération NOT logique à court-circuit.
      • Réponse : A. En Java, il existe deux types d’opérations AND : l’opération AND bit à bit (effectuée par l’opérateur &) et l’opération AND logique (effectuée par l’opérateur &&). L’opération AND bit à bit effectue l’opération AND sur chaque paire de bits des deux opérandes. L’opération AND logique effectue l’opération AND sur les valeurs booléennes des deux opérandes. Si le premier opérande est false, l’opération AND logique ne vérifie pas le second opérande, car le résultat sera false quel que soit le second opérande. C’est ce qu’on appelle un “court-circuit”.
    • Quelle est la différence entre les opérateurs | et || en Java ?

      • A. L’opérateur | effectue une opération OR bit à bit, tandis que l’opérateur || effectue une opération OR logique à court-circuit.
      • B. L’opérateur | effectue une opération AND bit à bit, tandis que l’opérateur || effectue une opération AND logique à court-circuit.
      • C. L’opérateur | effectue une opération XOR bit à bit, tandis que l’opérateur || effectue une opération XOR logique à court-circuit.
      • D. L’opérateur | effectue une opération NOT bit à bit, tandis que l’opérateur || effectue une opération NOT logique à court-circuit.
      • Réponse : A. En Java, il existe deux types d’opérations OR : l’opération OR bit à bit (effectuée par l’opérateur |) et l’opération OR logique (effectuée par l’opérateur ||). L’opération OR bit à bit effectue l’opération OR sur chaque paire de bits des deux opérandes. L’opération OR logique effectue l’opération OR sur les valeurs booléennes des deux opérandes. Si le premier opérande est true, l’opération OR logique ne vérifie pas le second opérande, car le résultat sera true quel que soit le second opérande. C’est ce qu’on appelle un “court-circuit”.
    • Quelle est la différence entre les méthodes wait() et sleep() en Java ?

      • A. La méthode wait() libère le verrou sur l’objet et met le thread en attente, tandis que la méthode sleep() ne libère pas le verrou et met simplement le thread en pause.
      • B. La méthode wait() ne libère pas le verrou sur l’objet et met simplement le thread en pause, tandis que la méthode sleep() libère le verrou et met le thread en attente.
      • C. La méthode wait() peut être interrompue par un autre thread, tandis que la méthode sleep() ne peut pas être interrompue.
      • D. La méthode wait() ne peut pas être interrompue par un autre thread, tandis que la méthode sleep() peut être interrompue.
      • Réponse : A. En Java, il existe deux méthodes principales pour mettre un thread en pause : wait() et sleep(). La méthode wait() est utilisée pour mettre un thread en attente jusqu’à ce qu’un autre thread invoque la méthode notify() ou notifyAll() sur le même objet. Elle libère également le verrou sur l’objet, permettant ainsi à d’autres threads d’exécuter des méthodes synchronisées sur le même objet. La méthode sleep() met simplement un thread en pause pendant un certain temps sans libérer aucun verrou.
    • Quelle est la différence entre les méthodes notify() et notifyAll() en Java ?

      • A. La méthode notify() réveille un seul thread en attente sur l’objet, tandis que la méthode notifyAll() réveille tous les threads en attente sur l’objet.
      • B. La méthode notify() réveille tous les threads en attente sur l’objet, tandis que la méthode notifyAll() réveille un seul thread en attente sur l’objet.
      • C. La méthode notify() ne peut être appelée que depuis un bloc synchronisé, tandis que la méthode notifyAll() peut être appelée depuis n’importe où.
      • D. La méthode notify() peut être appelée depuis n’importe où, tandis que la méthode notifyAll() ne peut être appelée que depuis un bloc synchronisé.
      • Réponse : A. En Java, il existe deux méthodes principales pour réveiller les threads en attente sur un objet : notify() et notifyAll(). La méthode notify() réveille un seul thread en attente sur l’objet, tandis que la méthode notifyAll() réveille tous les threads en attente sur l’objet. Ces méthodes doivent être appelées depuis un bloc synchronisé pour éviter les conditions de concurrence.
    • Quelle est la différence entre les méthodes join() et yield() en Java ?

      • A. La méthode join() permet à un thread d’attendre la fin d’un autre thread, tandis que la méthode yield() permet à un thread de céder sa place à un autre thread de même priorité ou supérieure.
      • B. La méthode join() permet à un thread de céder sa place à un autre thread de même priorité ou supérieure, tandis que la méthode yield() permet à un thread d’attendre la fin d’un autre thread.
      • C. La méthode join() ne peut être appelée que depuis un bloc synchronisé, tandis que la méthode yield() peut être appelée depuis n’importe où.
      • D. La méthode join() peut être appelée depuis n’importe où, tandis que la méthode yield() ne peut être appelée que depuis un bloc synchronisé.
      • Réponse : A. En Java, il existe deux méthodes principales pour gérer l’exécution des threads : join() et yield(). La méthode join() permet à un thread d’attendre la fin d’un autre thread avant de continuer son exécution. La méthode yield() permet à un thread de céder volontairement sa place à un autre thread de même priorité ou supérieure pour permettre une meilleure utilisation des ressources du processeur.
    • Quelle est la différence entre les méthodes interrupt() et isInterrupted() en Java ?

      • A. La méthode interrupt() interrompt un thread en cours d’exécution, tandis que la méthode isInterrupted() vérifie si un thread a été interrompu ou non.
      • B. La méthode interrupt() vérifie si un thread a été interrompu ou non, tandis que la méthode isInterrupted() interrompt un thread en cours d’exécution.
      • C. La méthode interrupt() ne peut être appelée que depuis un bloc synchronisé, tandis que la méthode isInterrupted() peut être appelée depuis n’importe où.
      • D. La méthode interrupt() peut être appelée depuis n’importe où, tandis que la méthode isInterrupted() ne peut être appelée que depuis un bloc synchronisé.
      • Réponse : A. En Java, il existe deux méthodes principales pour gérer l’interruption des threads : interrupt() et isInterrupted(). La méthode interrupt() interrompt un thread en cours d’exécution en lui envoyant une demande d’interruption. Le thread interrompu doit vérifier régulièrement s’il a été interrompu et agir en conséquence (par exemple, en terminant son exécution). La méthode isInterrupted() permet à un thread de vérifier s’il a été interrompu ou non.
    • Quelle est la différence entre les méthodes setPriority() et getPriority() en Java ?

      • A. La méthode setPriority() définit la priorité d’un thread, tandis que la méthode getPriority() renvoie la priorité d’un thread.
      • B. La méthode setPriority() renvoie la priorité d’un thread, tandis que la méthode getPriority() définit la priorité d’un thread.
      • C. La méthode setPriority() ne peut être appelée que depuis un bloc synchronisé, tandis que la méthode getPriority() peut être appelée depuis n’importe où.
      • D. La méthode setPriority() peut être appelée depuis n’importe où, tandis que la méthode getPriority() ne peut être appelée que depuis un bloc synchronisé.
      • Réponse : A. En Java, il existe deux méthodes principales pour gérer la priorité des threads : setPriority() et getPriority(). La méthode setPriority() permet de définir la priorité d’un thread, qui détermine l’ordre dans lequel les threads sont exécutés par le processeur. La méthode getPriority() permet de récupérer la priorité actuelle d’un thread.
    • Quelle est la différence entre les méthodes start() et run() en Java ?

      • A. La méthode start() crée un nouveau thread et appelle la méthode run(), tandis que la méthode run() contient le code à exécuter dans le thread.
      • B. La méthode start() contient le code à exécuter dans le thread, tandis que la méthode run() crée un nouveau thread et appelle la méthode start().
      • C. La méthode start() ne peut être appelée qu’une seule fois pour un même objet Thread, tandis que la méthode run() peut être appelée plusieurs fois.
      • D. La méthode start() peut être appelée plusieurs fois pour un même objet Thread, tandis que la méthode run() ne peut être appelée qu’une seule fois.
      • Réponse : A. En Java, il existe deux méthodes principales pour créer et exécuter des threads : start() et run(). La méthode start() crée un nouveau thread et appelle la méthode run() de l’objet Thread pour exécuter le code du thread. La méthode run() contient le code à exécuter dans le thread et doit être surchargée par les sous-classes de Thread pour fournir une implémentation spécifique.
    • Quelle est la différence entre les méthodes synchronized et volatile en Java ?

      • A. Le mot-clé synchronized permet de synchroniser l’accès à une ressource partagée entre plusieurs threads, tandis que le mot-clé volatile garantit que les modifications apportées à une variable sont immédiatement visibles par tous les threads.
      • B. Le mot-clé synchronized garantit que les modifications apportées à une variable sont immédiatement visibles par tous les threads, tandis que le mot-clé volatile permet de synchroniser l’accès à une ressource partagée entre plusieurs threads.
      • C. Le mot-clé synchronized ne peut être utilisé que sur des méthodes, tandis que le mot-clé volatile ne peut être utilisé que sur des variables.
      • D. Le mot-clé synchronized ne peut être utilisé que sur des variables, tandis que le mot-clé volatile ne peut être utilisé que sur des méthodes.
      • Réponse : A. En Java, il existe deux mécanismes principaux pour gérer l’accès concurrent à des ressources partagées entre plusieurs threads : le mot-clé synchronized et le mot-clé volatile. Le mot-clé synchronized permet de synchroniser l’accès à une ressource partagée en garantissant qu’un seul thread à la fois peut accéder à la ressource. Le mot-clé volatile garantit que les modifications apportées à une variable sont immédiatement visibles par tous les threads, sans avoir besoin de synchronisation explicite.
      •  
    • Quelle est la différence entre les méthodes read() et readLine() en Java ?

      • A. La méthode read() lit un caractère à partir d’un flux d’entrée, tandis que la méthode readLine() lit une ligne de texte à partir d’un flux d’entrée.
      • B. La méthode read() lit une ligne de texte à partir d’un flux d’entrée, tandis que la méthode readLine() lit un caractère à partir d’un flux d’entrée.
      • C. La méthode read() renvoie un entier représentant le caractère lu, tandis que la méthode readLine() renvoie une chaîne de caractères représentant la ligne lue.
      • D. La méthode read() renvoie une chaîne de caractères représentant le caractère lu, tandis que la méthode readLine() renvoie un entier représentant la ligne lue.
      • Réponse : A. En Java, il existe deux méthodes principales pour lire des données à partir d’un flux d’entrée : read() et readLine(). La méthode read() lit un seul caractère à partir du flux d’entrée et renvoie un entier représentant le caractère lu (ou -1 si la fin du flux a été atteinte). La méthode readLine() lit une ligne de texte à partir du flux d’entrée et renvoie une chaîne de caractères représentant la ligne lue (ou null si la fin du flux a été atteinte).
    • Quelle est la différence entre les méthodes write() et flush() en Java ?

      • A. La méthode write() écrit des données dans un flux de sortie, tandis que la méthode flush() vide le tampon de sortie et force l’écriture des données dans le flux de sortie.
      • B. La méthode write() vide le tampon de sortie et force l’écriture des données dans le flux de sortie, tandis que la méthode flush() écrit des données dans un flux de sortie.
      • C. La méthode write() ne peut être appelée qu’une seule fois pour un même objet OutputStream, tandis que la méthode flush() peut être appelée plusieurs fois.
      • D. La méthode write() peut être appelée plusieurs fois pour un même objet OutputStream, tandis que la méthode flush() ne peut être appelée qu’une seule fois.
      • Réponse : A. En Java, il existe deux méthodes principales pour écrire des données dans un flux de sortie : write() et flush(). La méthode write() écrit des données dans le tampon de sortie du flux. Si le tampon est plein ou si vous voulez forcer l’écriture des données dans le flux de sortie, vous pouvez utiliser la méthode flush() pour vider le tampon et forcer l’écriture des données dans le flux.
    • Quelle est la différence entre les méthodes close() et finalize() en Java ?

      • A. La méthode close() ferme un flux d’entrée ou de sortie et libère les ressources associées, tandis que la méthode finalize() est appelée par le garbage collector avant qu’un objet ne soit détruit.
      • B. La méthode close() est appelée par le garbage collector avant qu’un objet ne soit détruit, tandis que la méthode finalize() ferme un flux d’entrée ou de sortie et libère les ressources associées.
      • C. La méthode close() ne peut être appelée qu’une seule fois pour un même objet InputStream ou OutputStream, tandis que la méthode finalize() peut être appelée plusieurs fois.
      • D. La méthode close() peut être appelée plusieurs fois pour un même objet InputStream ou OutputStream, tandis que la méthode finalize() ne peut être appelée qu’une seule fois.
      • Réponse : A. En Java, il existe deux méthodes principales pour gérer la fermeture des ressources : close() et finalize(). La méthode close() est utilisée pour fermer explicitement un flux d’entrée ou de sortie et libérer les ressources associées (comme les descripteurs de fichiers ou les sockets réseau). Elle doit être appelée lorsque vous avez terminé d’utiliser le flux pour éviter les fuites de ressources. La méthode finalize() est une méthode spéciale qui est appelée par le garbage collector juste avant qu’un objet ne soit détruit pour permettre à l’objet de nettoyer les ressources qu’il a allouées.
    • Quelle est la différence entre les méthodes toString() et hashCode() en Java ?

      • A. La méthode toString() renvoie une représentation sous forme de chaîne de caractères de l’objet, tandis que la méthode hashCode() renvoie un code de hachage pour l’objet.
      • B. La méthode toString() renvoie un code de hachage pour l’objet, tandis que la méthode hashCode() renvoie une représentation sous forme de chaîne de caractères de l’objet.
      • C. La méthode toString() ne peut être appelée que depuis un bloc synchronisé, tandis que la méthode hashCode() peut être appelée depuis n’importe où.
      • D. La méthode toString() peut être appelée depuis n’importe où, tandis que la méthode hashCode() ne peut être appelée que depuis un bloc synchronisé.
      • Réponse : A. En Java, il existe deux méthodes principales pour obtenir des informations sur un objet : toString() et hashCode(). La méthode toString() renvoie une représentation sous forme de chaîne de caractères de l’objet. Elle est souvent utilisée pour afficher des informations sur l’objet dans un format lisible par l’homme. La méthode hashCode() renvoie un code de hachage pour l’objet, qui est utilisé pour stocker l’objet dans des structures de données telles que les tables de hachage.
    • Quelle est la différence entre les méthodes equals() et compareTo() en Java ?

      • A. La méthode equals() compare deux objets pour déterminer s’ils sont égaux, tandis que la méthode compareTo() compare deux objets pour déterminer leur ordre naturel.
      • B. La méthode equals() compare deux objets pour déterminer leur ordre naturel, tandis que la méthode compareTo() compare deux objets pour déterminer s’ils sont égaux.
      • C. La méthode equals() renvoie un booléen indiquant si les deux objets sont égaux ou non, tandis que la méthode compareTo() renvoie un entier indiquant l’ordre des deux objets.
      • D. La méthode equals() renvoie un entier indiquant l’ordre des deux objets, tandis que la méthode compareTo() renvoie un booléen indiquant si les deux objets sont égaux ou non.
      • Réponse : A. En Java, il existe deux méthodes principales pour comparer des objets : equals() et compareTo(). La méthode equals() compare deux objets pour déterminer s’ils sont égaux ou non. Elle renvoie true si les deux objets sont considérés comme égaux et false sinon. La méthode compareTo() compare deux objets pour déterminer leur ordre naturel (c’est-à-dire l’ordre dans lequel ils doivent être triés). Elle renvoie un entier négatif si l’objet sur lequel elle est appelée doit être placé avant l’objet passé en paramètre, zéro si les deux objets sont égaux et un entier positif si l’objet sur lequel elle est appelée doit être placé après l’objet passé en paramètre.
    • Quelle est la différence entre les méthodes add() et offer() dans une Queue en Java ?

      • A. La méthode add() insère un élément à la fin de la queue et renvoie true, tandis que la méthode offer() insère un élément à la fin de la queue et renvoie true si l’élément a été ajouté avec succès ou false sinon.
      • B. La méthode add() insère un élément à la fin de la queue et renvoie true si l’élément a été ajouté avec succès ou false sinon, tandis que la méthode offer() insère un élément à la fin de la queue et renvoie true.
      • C. La méthode add() ne peut être appelée que sur des queues non bornées, tandis que la méthode offer() peut être appelée sur des queues bornées ou non bornées.
      • D. La méthode add() peut être appelée sur des queues bornées ou non bornées, tandis que la méthode offer() ne peut être appelée que sur des queues non bornées.
      • Réponse : A. En Java, une Queue (file d’attente) est une collection d’éléments qui suit le principe du premier entré, premier sorti (FIFO). Il existe deux méthodes principales pour ajouter des éléments à une Queue : add() et offer(). La méthode add() insère un élément à la fin de la queue et renvoie true si l’élément a été ajouté avec succès. Si la queue est pleine (c’est-à-dire si elle a une capacité limitée), cette méthode lève une exception. La méthode offer() insère également un élément à la fin de la queue, mais elle renvoie true si l’élément a été ajouté avec succès ou false sinon (par exemple, si la queue est pleine).
    •  
Modifié le: vendredi 8 septembre 2023, 07:24