0% ont trouvé ce document utile (0 vote)
5 vues12 pages

Comprendre JDK, JRE et JVM en Java

yes it is

Transféré par

chebbimedwassef
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues12 pages

Comprendre JDK, JRE et JVM en Java

yes it is

Transféré par

chebbimedwassef
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

1.

2. chargement paresseuxWhat are JDK, JRE, and JVM?

JVM
JVM (Java Virtual Machine) est une machine abstraite. On l'appelle une machine
virtuelle car elle n'existe pas physiquement. Il s'agit d'une spécification qui fournit un
environnement d'exécution dans lequel le bytecode Java peut être exécuté. Il peut
également exécuter les programmes écrits dans d'autres langages et compilés en
bytecode Java.

Les JVM sont disponibles pour de nombreuses plates-formes matérielles et


logicielles. JVM, JRE et JDK dépendent de la plate-forme car la configuration de
chaque système d'exploitation est différente les unes des autres. Cependant, Java est
indépendant de la plate-forme. Il existe trois notions de la
JVM : spécification , implémentation et instance .

La JVM effectue les tâches principales suivantes :

o Charge le code
o Vérifie le code
o Exécute le code
o Fournit un environnement d'exécution

JRE
JRE est l'acronyme de Java Runtime Environment. Il est également écrit en Java
RTE. L'environnement d'exécution Java est un ensemble d'outils logiciels utilisés pour
développer des applications Java. Il est utilisé pour fournir l'environnement
d'exécution. C'est l'implémentation de la JVM. Il existe physiquement. Il contient un
ensemble de bibliothèques + d'autres fichiers que JVM utilise lors de l'exécution.
L'implémentation de JVM est également activement publiée par d'autres sociétés que
Sun Micro Systems.
JDK
JDK est l'acronyme de Java Development Kit. Le Java Development Kit (JDK) est un
environnement de développement logiciel utilisé pour développer des applications et
des applets Java . Il existe physiquement. Il contient JRE + outils de développement.

JDK est une implémentation de l'une des plates-formes Java ci-dessous publiées par
Oracle Corporation :

o Plateforme Java édition standard


o Plateforme Java Édition Entreprise
o Plateforme Java Micro Edition

Le JDK contient une machine virtuelle Java (JVM) privée et quelques autres ressources
telles qu'un interpréteur/chargeur (java), un compilateur (javac), un archiveur (jar), un
générateur de documentation (Javadoc), etc. pour compléter le développement d'une
application Java.

3. Explain Abstraction and Encapsulation ?


L’abstraction est le processus qui consiste à représenter des objets qui appartiennent
au monde réel dans le monde du programme que l’on écrit.

L'abstraction est la méthode de dissimulation des informations indésirables.

Nous pouvons implémenter l'abstraction en utilisant une classe abstraite et des


interfaces.

L’encapsulation consiste à définir les méthodes d’accès à ces données, et les calculs qui
seront effectués dessus.

l'encapsulation est une méthode pour cacher les données dans une seule entité ou
unité ainsi qu'une méthode pour protéger les informations de l'extérieur.

L'encapsulation peut être implémentée en utilisant un modificateur d'accès, c'est-à-dire


privé, protégé et public.

4. What is Inheritance, Aggregation, and Association?


Inheritance
En Java, il est possible d'hériter d'attributs et de méthodes d'une classe à une autre.
Nous regroupons le « concept d'héritage » en deux catégories :

sous-classe (enfant) - la classe qui hérite d'une autre classe superclasse (parent) –

la classe qu’on veut l’héritée, utilisez le mot-clé extend.

Aggregation
L'agrégation est un terme utilisé pour désigner une relation à sens unique entre deux
objets. Par exemple, la classe Etudiant peut avoir la référence de la classe Adresse mais
vice versa n'a pas de sens.

En Java, l'agrégation représente la relation HAS-A, ce qui signifie qu'une classe contient
la référence d'une autre classe connue pour avoir une agrégation.

La relation HAS-A est basée sur l'utilisation plutôt que sur l'héritage. En d'autres
termes, la classe A a une relation avec la classe B, si la classe A a une référence à une
instance de la classe B.

Le principal avantage de l'utilisation de l'agrégation est de maintenir la réutilisabilité du


code. Si une entité a une relation avec une autre entité, elle peut réutiliser le code
simplement en s'y référant.
Association
L'association est une relation entre deux classes distinctes qui s'établit à travers leurs
objets. L'association peut être un-à-un, un-à-plusieurs, plusieurs-à-un, plusieurs-à-
plusieurs.

5. What is a try-with resource in java?

L'instruction try-with-resources est une instruction try qui déclare une ou plusieurs
ressources. Une ressource est un objet qui doit être fermé une fois le programme
terminé. L'instruction try-with-resources garantit que chaque ressource est fermée à la
fin de l'instruction. Tout objet qui implémente [Link], qui inclut tous
les objets qui implémentent [Link], peut être utilisé comme ressource.

6. Why is String immutable in Java?

String est immuable en Java car les objets String sont mis en cache dans le pool de
chaînes.
Les principaux avantages de garder cette classe immuable sont la mise en cache, la
sécurité, la synchronisation et les performances.

En raison de la présence du pool String dans l'exemple précédent, deux variables


différentes pointent vers le même objet String du pool, économisant ainsi des
ressources mémoire cruciales.
7. Explain Garbage Collection?
Les applications Java obtiennent des objets en mémoire selon les besoins. C'est la tâche
du ramasse-miettes (GC) dans la machine virtuelle Java (JVM) de déterminer
automatiquement quelle mémoire n'est plus utilisée par une application Java et de
recycler cette mémoire pour d'autres usages. Étant donné que la mémoire est
automatiquement récupérée dans la JVM , les développeurs d'applications Java ne sont
pas obligés de libérer explicitement les objets de mémoire qui ne sont pas utilisés.
L'opération GC est basée sur le principe que la plupart des objets utilisés dans le code
Java sont de courte durée et peuvent être récupérés peu de temps après leur création.
Étant donné que les objets non référencés sont automatiquement supprimés de la
mémoire de tas, GC rend Java efficace en termes de mémoire.

8. What are exceptions and what is exception handling?


Une exception est un événement, qui se produit pendant l'exécution d'un
programme, qui perturbe le déroulement normal des instructions du
programme.

La gestion des exceptions en Java est l'un des mécanismes puissants pour
gérer les erreurs d'exécution afin que le flux normal de l'application puisse
être maintenu.

9. Explain Autoboxing and Unboxing?


L'autoboxing est la conversion automatique effectuée par le compilateur
Java entre les types primitifs et leurs classes d'enveloppe d'objet
correspondantes. Par exemple, convertir un int en Integer ,
un double en Double , et ainsi de suite. Si la conversion se passe dans l'autre
sens, cela s'appelle unboxing .

10. What is Typecasting? Explain with Parent-Child


inheritance example.
Le transtypage est l'un des concepts les plus importants qui traite
essentiellement de la conversion d'un type de données en un autre type de
données implicitement ou explicitement. Dans cet article, le concept de
transtypage pour les objets est discuté. Tout comme les types de données, les
objets peuvent également être transtypés. Cependant, dans les objets, il n'y a
que deux types d'objets (c'est-à-dire) l'objet parent et l'objet enfant. Par
conséquent, le transtypage d'objets signifie essentiellement qu'un type d'objet
(c'est-à-dire) enfant ou parent à un autre. Il existe deux types de transtypage. Ils
sont :

Upcasting est le transtypage d'un objet enfant vers un objet parent .L'upcasting
peut être fait implicitement. La diffusion ascendante nous donne la possibilité
d'accéder aux membres de la classe parent, mais il n'est pas possible d'accéder
à tous les membres de la classe enfant à l'aide de cette fonctionnalité. Au lieu de
tous les membres, nous pouvons accéder à certains membres spécifiés de la
classe enfant. Par exemple, nous pouvons accéder aux méthodes surchargées.

Downcasting : De même, downcasting signifie le transtypage d'un objet parent


vers un objet enfant . Le downcasting ne peut pas être implicite.

Afin d'effectuer un transtypage de type de classe, nous devons suivre ces deux
règles comme suit :

● Les cours doivent être « IS-A-Relationship »

● Un objet doit avoir la propriété d'une classe dans laquelle il va effectuer un


casting.

11. Why is the Java platform independent?


Dans le cas de Java, c'est la magie du Bytecode qui le rend indépendant de
la plate-forme .

Cela s'ajoute à une fonctionnalité importante du langage JAVA appelé


portabilité . Chaque système a sa propre JVM qui s'installe automatiquement
lorsque le logiciel jdk est installé. Pour chaque système d'exploitation, une
JVM distincte est disponible, capable de lire le fichier .class ou le byte code.
Un point important à noter est que si JAVA est un langage indépendant de la
plate-forme, la JVM est dépendante de la plate-forme. Différentes JVM sont
conçues pour différents systèmes d'exploitation et le byte code est capable
de s'exécuter sur différents systèmes d'exploitation.

12. How many ways can we create objects in java?


Java new Operator

Java [Link]() method

Java newInstance() method of constructor


Java [Link]() method
Java Object Serialization and Deserialization

13. What is the Collections framework?


La plate-forme Java comprend un framework de
collections . Une collection est un objet qui représente un groupe d'objets
(comme la classe classique ArrayList ). Un framework de collections est une
architecture unifiée pour représenter et manipuler des collections,
permettant aux collections d'être manipulées indépendamment des détails
d'implémentation.

Les principaux avantages d'un cadre de collecte sont les suivants :

Réduit l'effort de programmation en fournissant des structures de données


et des algorithmes afin que vous n'ayez pas à les écrire vous-même.

Augmente les performances en fournissant des implémentations hautes


performances de structures de données et d'algorithmes. Étant donné que
les différentes implémentations de chaque interface sont interchangeables,
les programmes peuvent être réglés en changeant les implémentations.

Fournit l'interopérabilité entre des API non liées en établissant un langage


commun pour transmettre les collections dans les deux sens.

Réduit l'effort requis pour apprendre les API en vous obligeant à apprendre
plusieurs API de collecte ad hoc.

Réduit l'effort requis pour concevoir et implémenter des API en ne vous


obligeant pas à produire des API de collections ad hoc.

Favorise la réutilisation des logiciels en fournissant une interface standard


pour les collections et les algorithmes avec lesquels les manipuler.

14. Explain static, this, and super keyword?


this
il s'agit d'un mot-clé réservé en java, c'est-à-dire que nous ne pouvons pas
l'utiliser comme identifiant.
This est utilisé pour faire référence à l'instance de la classe actuelle ainsi qu'aux
membres statiques.
cela peut être utilisé dans divers contextes comme indiqué ci-dessous :

● pour faire référence à la variable d'instance de la classe actuelle

● pour invoquer ou initier le constructeur de classe actuel

● peut être passé en argument dans l'appel de méthode

● peut être passé en argument dans l'appel du constructeur

● peut être utilisé pour retourner l'instance de classe actuelle


Super
super est un mot-clé réservé en Java, c'est-à-dire que nous ne pouvons pas l'utiliser
comme identifiant.
super est utilisé pour faire référence à l'instance de la super-classe ainsi qu'aux
membres statiques .
super est également utilisé pour invoquer la méthode ou le constructeur de la super-
classe .

this vs Super
Le this mot-clé pointe vers une référence de la classe courante, tandis que le super
mot - clé pointe vers une référence de la classe parent. thispeut être utilisé pour
accéder aux variables et aux méthodes de la classe courante, et superpeut être utilisé
pour accéder aux variables et aux méthodes de la classe parent à partir de la sous-
classe.

Static

En Java, le mot - clé static est principalement utilisé pour la gestion de la


mémoire. Il peut être utilisé avec des variables , des méthodes, des blocs et
des classes imbriquées . C'est un mot-clé qui est utilisé pour partager la
même variable ou méthode d'une classe donnée. Fondamentalement, static
est utilisé pour une variable constante ou une méthode qui est la même
pour chaque instance d'une classe . La méthode principale d'une classe est
généralement étiquetée static.

15. Explain finally, finalize and final keyword?

Common questions

Alimenté par l’IA

La collecte de déchets en Java permet de gérer efficacement la mémoire en recyclant automatiquement celle qui n'est plus utilisée, libérant ainsi les développeurs du besoin de désallouer manuellement la mémoire . Ce processus repose sur le principe que de nombreux objets sont de courte durée et peuvent être récupérés peu après leur création, ce qui optimise l'utilisation de la mémoire et améliore la performance des applications Java .

Le mot-clé 'this' fait référence à l'instance actuelle de la classe, permettant d'accéder aux variables et méthodes de la classe actuelle . Le mot-clé 'super' fait référence à l'instance de la superclasse, utilisé pour accéder aux méthodes et variables de la classe parent . Le mot-clé 'static' est employé pour la gestion de la mémoire, affectant variables ou méthodes indépendantes d'instance, couramment partagé entre toutes les instances d'une classe . Ces mots-clés imposent une structure claire dans la gestion de l'héritage, de l'instance et de l'état partagé .

L'autoboxing en Java convertit automatiquement les types primitifs en leur équivalent objet, comme un int en Integer, permettant ainsi une intégration plus fluide avec les classes Java qui fonctionnent avec les objets . L'unboxing réalise l'opération inverse en extrayant la valeur primitive d'un wrapper, facilitant les calculs et traitements qui nécessitent des types primitifs, et réduisant ainsi le besoin de conversions manuelles .

Les chaînes de caractères en Java sont immuables principalement pour des raisons de cache, de sécurité, de synchronisation et de performance. Étant donné qu'elles sont mises en cache dans le pool de chaînes, deux variables peuvent pointer vers le même objet String, ce qui économise de la mémoire . Cela permet une manipulation plus efficace et sûre des données, notamment parce qu'une chaîne une fois créée ne peut être modifiée, préservant ainsi l'intégrité des données .

L'abstraction cache les détails complexes des objets pour n'exposer que les informations essentielles, et est implémentée à travers des classes abstraites et des interfaces . L'encapsulation, quant à elle, est une méthode qui protège les données en les regroupant dans une entité unique et en contrôlant l'accès via des modificateurs d'accès comme public, privé et protégé .

L'instruction "try-with-resources" en Java est utilisée pour déclarer une ou plusieurs ressources qui doivent être fermées après utilisation. Elle garantit que chaque ressource est fermée automatiquement à la fin de l'instruction try, résolvant ainsi les problématiques de fuites de ressources . Tout objet implémentant java.lang.AutoCloseable peut être utilisé, ce qui simplifie la gestion des ressources et améliore la fiabilité du code .

L'agrégation en Java représente une relation "HAS-A" où une classe contient une référence à une autre classe, contrairement à l'héritage qui est une relation "IS-A" . Par exemple, une classe Étudiant peut inclure une référence à une classe Adresse, sans qu'il y ait d'héritage au sens strict. Cela permet de réutiliser des composants existants et favorise la maintenabilité et la lisibilité du code .

Java est portable grâce à son bytecode qui est indépendant de la plateforme, permettant son exécution sur toute machine équipée d'une JVM appropriée . Bien que chaque JVM soit conçue pour un système d'exploitation spécifique, elle permet au même bytecode de fonctionner sur différentes plateformes, assurant ainsi que le code Java peut être écrit une fois et exécuté partout sans modification .

Le framework de collections en Java fournit une architecture unifiée pour la manipulation des objets en groupes, comme ArrayList . Ses avantages incluent la réduction de l'effort de programmation grâce à des structures de données prêtes à l'emploi, l'amélioration des performances via des implémentations optimisées de ces structures, et la possibilité d'interchanger les implémentations pour affiner les performances. Il assure également l'interopérabilité entre des API et favorise la réutilisation et la standardisation du code .

La JVM (Java Virtual Machine) est une machine abstraite qui exécute le bytecode Java et fournit un environnement d'exécution. Elle charge, vérifie et exécute le code, mais n'existe pas physiquement . Le JRE (Java Runtime Environment) est l'implémentation réelle de la JVM qui inclut des bibliothèques et d'autres fichiers requis pour l'exécution des applications Java. Il est physiquement présent et assure l'exécution des programmes . Le JDK (Java Development Kit) englobe le JRE et inclut des outils de développement tels qu'un compilateur (javac), un générateur de documentation (Javadoc) et plus encore. Il sert à développer des applications Java et est spécifique à une plateforme Java (Standard, Enterprise ou Micro Edition).

Vous aimerez peut-être aussi