Vous êtes sur la page 1sur 3

JAVA/J2EE

JDK : Il comprend notamment le compilateur Java, les bibliothèques Java standard, et divers autres outils
nécessaires pour développer et déboguer des programmes en Java.

JRE : Le JRE est un environnement dans lequel les programmes Java peuvent s'exécuter

JVM : C'est une machine virtuelle qui permet l'exécution de programmes Java indépendamment de la plate-forme.

Interface vs Classe abstraite : Une interface est une collection de méthodes abstraites, tandis qu'une classe
abstraite peut contenir à la fois des méthodes abstraites et des méthodes concrètes.

Surcharge de méthode : La surcharge de méthode permet à une classe d'avoir plusieurs méthodes avec le même
nom mais des signatures différentes.

Différence entre String, StringBuffer et StringBuilder : String est immuable, StringBuffer est mutable mais
synchronisé, StringBuilder est mutable et non synchronisé.

Utilisez String lorsque vous avez besoin d'une chaîne immuable et que vous ne prévoyez pas de modifications
fréquentes. (concat replace startsWith endsWith split)

Utilisez StringBuffer lorsque vous manipulez des chaînes dans un environnement multithreadé où la
synchronisation est nécessaire. (insert delete reverse append)

Utilisez StringBuilder lorsque vous manipulez des chaînes dans un environnement monothreadé et que vous avez
besoin de meilleures performances que celles offertes par StringBuffer. . (insert delete reverse append)

equalsIgnoreCase(String anotherString) : Compare cette chaîne à une autre chaîne, en ignorant la casse.

trim() : Retourne une copie de cette chaîne avec les espaces en début et fin supprimés.(all)

split(String regex) : Divise cette chaîne en utilisant l'expression régulière spécifiée comme délimiteur.

append(String str) : Ajoute la chaîne spécifiée à la fin de cette séquence.

Map est une structure de données qui associe des paires clé-valeur où chaque clé est unique.

HashMap est une implémentation de Map qui ne garantit pas l'ordre des éléments.Les opérations de base (get,
put, remove)

LinkedHashMap maintient l'ordre d'insertion des éléments, ce qui signifie que les éléments sont parcourus dans
l'ordre où ils ont été insérés.

TreeMap est une implémentation de Map qui maintient les clés triées selon leur ordre naturel ou un comparateur
fourni.

Une List est une collection ordonnée d'éléments où les éléments peuvent être répétés.

ArrayList utilise un tableau dynamique pour stocker les éléments.L'accès aux éléments par leur indice est rapide,
mais l'insertion et la suppression en milieu de liste peuvent être coûteuses car cela peut nécessiter le décalage des
éléments.

LinkedList est implémentée en utilisant une liste doublement chaînée.L'accès par indice peut être plus lent que
dans ArrayList, mais les opérations d'insertion et de suppression en milieu de liste sont plus efficaces car elles
nécessitent seulement de mettre à jour les références des nœuds.

Un Set est une collection d'éléments uniques. pas de double dans les SET

HashSet utilise une table de hachage pour stocker les éléments, ce qui permet des opérations de recherche,
d'insertion et de suppression rapides.Il ne garantit pas l'ordre des éléments.

LinkedHashSet maintient l'ordre d'insertion des éléments, tout en offrant des performances similaires à HashSet.

TreeSet maintient les éléments triés dans l'ordre naturel ou selon un comparateur fourni.
ArrayList vs LinkedList : ArrayList utilise un tableau dynamique, LinkedList utilise une liste chaînée.

Gestion de la mémoire en Java : Java utilise le garbage collection pour gérer automatiquement la mémoire en
libérant les objets qui ne sont plus référencés.

Equals() vs == : Equals() compare le contenu, == compare les références mémoire.

Méthodes equals() et hashCode() : equals() compare le contenu des objets, hashCode() renvoie un code de
hachage pour l'objet.

La Sérialisation en Java est le processus de conversion d'un objet en un flux d'octets, qui peut être stocké dans un
fichier ou transmis sur le réseau, et de le désérialiser ultérieurement pour le restaurer dans sa forme d'objet
d'origine. Cela permet de persister les objets et de les transmettre entre différentes machines virtuelles Java.

Threading en Java : Le threading permet l'exécution simultanée de plusieurs threads pour améliorer les
performances.

Pour créer et démarrer un nouveau thread en Java, vous pouvez soit étendre la classe Thread et implémenter la
méthode run(), soit implémenter l'interface Runnable et passer une instance de cette classe à un objet Thread.
Ensuite, vous pouvez appeler la méthode start() sur l'objet Thread pour démarrer l'exécution du thread.

Méthodes synchronized et concurrentes : synchronized garantit l'accès exclusif à une ressource partagée, les
méthodes concurrentes peuvent être exécutées simultanément par plusieurs threads.

JIT Compiler : Le compilateur Just-In-Time traduit le bytecode Java en code machine au moment de l'exécution.

Singleton : Le Singleton est un modèle de conception qui garantit qu'une classe n'a qu'une seule instance et fournit
un point d'accès global à cette instance.

Modèle de conception Observer : Permet à un objet (observateur) de surveiller les changements dans un autre
objet (sujet).

Modèle de conception MVC : Divise une application en trois composants principaux : le Modèle, la Vue et le
Contrôleur.

Modèle de conception Builder : Permet la construction d'un objet étape par étape.

Modèle de conception Factory : Définit une interface pour créer un objet, mais laisse le choix des classes
concrètes à ses sous-classes.

Modèle de conception Proxy : Fournit un substitut ou un espace réservé pour un autre objet pour contrôler l'accès
à cet objet.

Modèle de conception Adapter : Permet à une interface existante d'être utilisée comme une autre interface.

Modèle de conception Composite : Permet de traiter des objets individuels et des compositions d'objets de
manière uniforme.

Modèle de conception Strategy : Permet de définir une famille d'algorithmes, d'encapsuler chacun d'eux et de les
rendre interchangeables.

Modèle de conception DAO isole la logique d'accès aux données. Dans J2EE, il est utilisé pour séparer la logique
d'accès aux données de la logique métier.

Principe SOLID : Ensemble de principes de conception (Single Responsibility, Open/Closed, Liskov Substitution,
Interface Segregation, Dependency Inversion).

Singleton thread-safe : Utilise généralement une initialisation tardive ou un blocage pour assurer la sécurité du
thread.

Transactions (JTA) : Java Transaction API permet la gestion des transactions dans les applications Java.

Wait(), notify(), notifyAll() : Méthodes utilisées pour la gestion de la concurrence dans Java.

Expressions lambda : Fonctions anonymes qui peuvent être utilisées pour simplifier le code.
Gérer les threads concurrentes : Utilisez des mécanismes de synchronisation tels que les verrous pour éviter les
conflits d'accès aux ressources partagées.

Le cycle de vie d'une servlet comprend l'initialisation, le service, la destruction et peut inclure des phases
supplémentaires comme l'activation et la passivation pour les servlets distribuées.

Un EJB est un composant logiciel serveur qui encapsule la logique métier d'une application J2EE.

Une transaction J2EE est une séquence d'opérations atomiques qui sont soit toutes exécutées avec succès, soit
aucune n'est exécutée. La gestion des transactions J2EE est assurée par le conteneur EJB, qui coordonne les
transactions en utilisant les services JTA (Java Transaction API).

Un intercepteur est un composant qui permet d'intercepter et de traiter des appels à des méthodes de
composants EJB, ajoutant des fonctionnalités telles que la journalisation ou la sécurité.

Qu'est-ce que JMS (Java Message Service) est une API qui permet aux applications Java d'envoyer et de recevoir des
messages asynchrones.

Qu'est-ce que JSF (JavaServer Faces) JSF est un framework de développement d'interfaces utilisateur pour les
applications web J2EE, basé sur des composants réutilisables.

Quand utiliseriez-vous try-catch et throws ? throw est utilisé pour lever une exception explicite, tandis que throws
est utilisé pour déclarer les exceptions que la méthode peut lancer.Utilisez try-catch lorsque vous devez gérer les
exceptions localement dans une méthode spécifique, et utilisez throws lorsque vous souhaitez transmettre
l'exception à l'appelant de la méthode.

différence entre final, finally, et finalize final est utilisé pour définir une constante, une méthode qui ne peut pas
être redéfinie dans les classes filles, ou une classe qui ne peut pas être héritée. finally est utilisé pour définir un
bloc de code qui est exécuté après l'exécution d'un bloc try, quelle que soit l'issue. finalize est une méthode
appelée par le ramasse-miettes avant qu'un objet soit libéré de la mémoire.

Vous aimerez peut-être aussi