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?