100+ Java Questions et réponses d'entretien (2024)
Java Questions et réponses d'entretien de programmation pour les débutants
1) Quelle est la différence entre une classe interne et une sous-classe ?
Une classe interne est une classe imbriquée dans une autre classe. Une classe interne a des droits d'accès pour la classe qui l'imbrique et elle peut accéder à toutes les variables et méthodes définies dans la classe externe.
Une sous-classe est une classe qui hérite d’une autre classe appelée super classe. La sous-classe peut accéder à toutes les méthodes et champs publics et protégés de sa super classe.
👉 Téléchargement PDF gratuit : Java Questions et réponses d'entretien d'entretien >>
2) À quoi servent les différents spécificateurs d'accès Java Des classes?
In Java, les spécificateurs d'accès sont les mots-clés utilisés avant un nom de classe qui définit la portée de l'accès. Les types de spécificateurs d'accès pour les classes sont :
1) Publique : Classe, Méthode, Champ sont accessibles de n'importe où.
2) Protégé : Method,Field est accessible depuis la même classe à laquelle ils appartiennent ou depuis les sous-classes, et depuis la classe du même package, mais pas de l'extérieur.
3) Par défaut : La méthode, le champ et la classe ne sont accessibles qu'à partir du même package et non depuis l'extérieur de son package natif.
4) Privé : Method,Field est accessible à partir de la même classe à laquelle ils appartiennent.
3) Quel est le but des méthodes statiques et des variables statiques ?
Lorsqu'il est nécessaire de partager une méthode ou une variable entre plusieurs objets d'une classe au lieu de créer des copies séparées pour chaque objet, nous utilisons un mot-clé static pour créer une méthode ou une variable partagée pour tous les objets.
4) Qu'est-ce que l'encapsulation des données et quelle est sa signification ?
L'encapsulation est un concept de programmation orientée objet permettant de combiner des propriétés et des méthodes en une seule unité.
L'encapsulation aide les programmeurs à suivre une approche modulaire pour le développement de logiciels, car chaque objet possède son propre ensemble de méthodes et de variables et remplit ses fonctions indépendamment des autres objets. L'encapsulation sert également à cacher les données.
5) Qu’est-ce qu’une classe singleton ? Donnez un exemple pratique de son utilisation.
Une classe singleton en Java ne peut avoir qu’une seule instance et donc toutes ses méthodes et variables appartiennent à une seule instance. Le concept de classe Singleton est utile dans les situations où il est nécessaire de limiter le nombre d'objets pour une classe.
Le meilleur exemple de scénario d'utilisation singleton est celui où il existe une limite à une seule connexion à une base de données en raison de certaines limitations du pilote ou de problèmes de licence.
6) Que contiennent les boucles Java? Quels sont les trois types de boucles ?
La boucle est utilisée en programmation pour exécuter une instruction ou un bloc d’instruction à plusieurs reprises. Il ya trois types de boucles dans Java:
1) Pour les boucles
Les boucles For sont utilisées en Java pour exécuter des instructions à plusieurs reprises pendant un nombre de fois donné. Les boucles For sont utilisées lorsque le nombre de fois où exécuter les instructions est connu du programmeur.
2) Tandis que les boucles
La boucle While est utilisée lorsque certaines instructions doivent être exécutées à plusieurs reprises jusqu'à ce qu'une condition soit remplie. Dans les boucles while, la condition est vérifiée avant l'exécution des instructions.
3) Faire des boucles While
La boucle Do While est identique à la boucle While, à la seule différence que la condition est vérifiée après l'exécution du bloc d'instructions. Par conséquent, en cas de boucle do while, les instructions sont exécutées au moins une fois.
7) Qu'est-ce qu'une boucle infinie ? Comment une boucle infinie est-elle déclarée ?
Une boucle infinie s'exécute sans aucune condition et s'exécute à l'infini. Une boucle infinie peut être rompue en définissant n'importe quelle logique de rupture dans le corps des blocs d'instructions.
Une boucle infinie est déclarée comme suit :
for (;;) { // Statements to execute // Add any loop breaking logic }
8) Quelle est la différence entre les instructions continue et break ?
break et continue sont deux mots-clés importants utilisés dans les boucles. Lorsqu'un mot-clé break est utilisé dans une boucle, la boucle est interrompue instantanément tandis que lorsque le mot-clé continue est utilisé, l'itération en cours est interrompue et la boucle continue avec l'itération suivante.
Dans l'exemple ci-dessous, la boucle est interrompue lorsque le compteur atteint 4.
for (counter = 0; counter & lt; 10; counter++) system.out.println(counter); if (counter == 4) { break; } }
Dans l'exemple ci-dessous, lorsque le compteur atteint 4, la boucle passe à l'itération suivante et toutes les instructions après le mot-clé continue sont ignorées pour l'itération en cours.
for (counter = 0; counter < 10; counter++) system.out.println(counter); if (counter == 4) { continue; } system.out.println("This will not get printed when counter is 4"); }
9) Quelle est la différence entre les variables doubles et flottantes dans Java?
En Java, float prend 4 octets en mémoire alors que Double prend 8 octets en mémoire. Float est un nombre décimal à virgule flottante simple précision tandis que Double est un nombre décimal à double précision.
10) Quel est le mot-clé final dans Java? Donnez un exemple.
En Java, une constante est déclarée à l'aide du mot-clé Final. La valeur ne peut être attribuée qu'une seule fois et après l'affectation, la valeur d'une constante ne peut pas être modifiée.
Dans l'exemple ci-dessous, une constante portant le nom const_val est déclarée et une valeur lui est attribuée :
Finale privée int const_val=100
Lorsqu'une méthode est déclarée comme finale, elle ne peut PAS être remplacée par les sous-classes. Cette méthode est plus rapide que toute autre méthode, car elle est résolue au moment opportun.
Lorsqu'une classe est déclarée comme finale, elle ne peut pas être sous-classée. Exemple de classes String, Integer et autres classes wrapper.
11) Qu'est-ce que l'opérateur ternaire ? Donne un exemple.
L'opérateur ternaire, également appelé opérateur conditionnel, est utilisé pour décider quelle valeur attribuer à une variable en fonction d'une évaluation de valeur booléenne. C'est noté ?
Dans l'exemple ci-dessous, si le rang est 1, le statut se voit attribuer la valeur « Terminé », sinon « En attente ».
public class conditionTest { public static void main(String args[]) { String status; int rank = 3; status = (rank == 1) ? "Done" : "Pending"; System.out.println(status); } }
12) Comment pouvez-vous générer des nombres aléatoires dans Java?
- En utilisant Math.random(), vous pouvez générer des nombres aléatoires compris entre 0.1 et 1.0.
- Utilisation de la classe Random dans le package java.util
13) Qu'est-ce que le cas de commutation par défaut ? Donnez un exemple.
Dans un instruction switch, le cas par défaut est exécuté lorsqu'aucune autre condition de commutation ne correspond. Le cas par défaut est un cas facultatif. Il ne peut être déclaré qu’une fois que tous les autres cas de commutation ont été codés.
Dans l'exemple ci-dessous, lorsque le score n'est pas 1 ou 2, la casse par défaut est utilisée.
public class switchExample { int score = 4; public static void main(String args[]) { switch (score) { case 1: system.out.println("Score is 1"); break; case 2: system.out.println("Score is 2"); break; default: system.out.println("Default Case"); } } }
14) Quelle est la classe de base dans Java d'où dérivent toutes les classes ?
java.lang.object
15) La méthode main() peut-elle être utilisée Java peut-il renvoyer des données ?
En Java, la méthode main() ne peut renvoyer aucune donnée et par conséquent, elle est toujours déclarée avec un type de retour void.
16) Que sont Java Des forfaits ? Quelle est la signification des forfaits ?
In Java, le package est un ensemble de classes et d'interfaces qui sont regroupées car elles sont liées les unes aux autres. L'utilisation de packages aide les développeurs à modulariser le code et à regrouper le code pour une réutilisation appropriée. Une fois le code empaqueté dans Packages, il peut être importé dans d’autres classes et utilisé.
17) Pouvons-nous déclarer une classe comme abstraite sans avoir de méthode abstraite ?
Oui, nous pouvons créer une classe abstraite en utilisant le mot-clé abstract avant le nom de la classe même si elle n'a pas de méthode abstraite. Cependant, si une classe possède ne serait-ce qu’une seule méthode abstraite, elle doit être déclarée comme abstraite, sinon elle générera une erreur.
18) Quelle est la différence entre une classe abstraite et une interface dans Java?
La principale différence entre une classe abstraite et une interface est qu'une interface ne peut posséder qu'une déclaration de méthodes statiques publiques sans implémentation concrète, tandis qu'une classe abstraite peut avoir des membres avec n'importe quel spécificateur d'accès (public, privé, etc.) avec ou sans implémentation concrète.
Une autre différence clé dans l'utilisation des classes abstraites et des interfaces est qu'une classe qui implémente une interface doit implémenter toutes les méthodes de l'interface tandis qu'une classe qui hérite d'une classe abstraite ne nécessite pas l'implémentation de toutes les méthodes de sa super classe.
Une classe peut implémenter plusieurs interfaces mais elle ne peut étendre qu’une seule classe abstraite.
19) Quelles sont les implications en termes de performances des interfaces par rapport aux classes abstraites ?
Les performances des interfaces sont plus lentes que celles des classes abstraites, car des indirections supplémentaires sont nécessaires pour les interfaces. Un autre facteur clé à prendre en compte par les développeurs est que n'importe quelle classe ne peut étendre qu'une seule classe abstraite alors qu'une classe peut implémenter plusieurs interfaces.
L'utilisation d'interfaces impose également une charge supplémentaire aux développeurs, car chaque fois qu'une interface est implémentée dans une classe ; le développeur est obligé d’implémenter chaque méthode d’interface.
20) L'importation d'un package importe-t-elle également ses sous-packages dans Java?
En Java, lorsqu'un package est importé, ses sous-packages ne sont pas importés et le développeur doit les importer séparément si nécessaire.
Par exemple, si un développeur importe un package University.*, toutes les classes du package nommé University sont chargées mais aucune classe du sous-package n'est chargée. Pour charger les classes de son sous-package (par exemple département), le développeur doit l'importer explicitement comme suit :
Importer le.département.universitaire.*
21) Pouvons-nous déclarer la méthode principale de notre classe comme privée ?
En Java, la méthode principale doit être publique statique pour exécuter correctement n'importe quelle application. Si la méthode principale est déclarée comme privée, le développeur n'obtiendra aucune erreur de compilation, cependant, elle ne sera pas exécutée et donnera une erreur d'exécution.
22) Comment pouvons-nous passer un argument à une fonction par référence au lieu de passer par valeur ?
En Java, nous pouvons transmettre un argument à une fonction uniquement par valeur et non par référence.
23) Comment un objet est-il sérialisé en Java ?
En Java, pour convertir un objet en flux d'octets par sérialisation, une interface portant le nom Serialisable est implémentée par la classe. Tous les objets d'une classe implémentant une interface sérialisable sont sérialisés et leur état est enregistré dans un flux d'octets.
24) Quand devrions-nous utiliser la sérialisation ?
La sérialisation est utilisée lorsque les données doivent être transmises sur le réseau. Grâce à la sérialisation, l'état de l'objet est enregistré et converti en flux d'octets. Le flux d'octets est transféré sur le réseau et l'objet est recréé à destination.
25) Est-il obligatoire qu'un bloc Try soit suivi d'un bloc Catch dans Java pour la gestion des exceptions?
Le bloc Try doit être suivi du bloc Catch ou du bloc Enfin, ou des deux. Toute exception levée à partir du bloc try doit être soit interceptée dans le bloc catch, soit toute tâche spécifique à effectuer avant l'avortement du code est placée dans le bloc Enfin.
Java Questions et réponses d'entretien pour les expérimentés
26) Existe-t-il un moyen d'ignorer le bloc d'exception Enfin, même si une exception se produit dans le bloc d'exception ?
Si une exception est déclenchée dans le bloc Try, le contrôle passe au bloc catch s'il existe, sinon pour finalement bloquer. Le bloc Enfin est toujours exécuté lorsqu'une exception se produit et le seul moyen d'éviter l'exécution d'une instruction dans le bloc Enfin est d'abandonner le code de force en écrivant la ligne de code suivante à la fin du bloc try :
System.exit(0);
27) Quand le constructeur d’une classe est invoqué ?
Le constructeur d'une classe est invoqué à chaque fois qu'un objet est créé avec le nouveau mot-clé.
Par exemple, dans la classe suivante, deux objets sont créés à l'aide du nouveau mot-clé et le constructeur est donc invoqué deux fois.
public class const_example { const_example() { system.out.println("Inside constructor"); } public static void main(String args[]) { const_example c1 = new const_example(); const_example c2 = new const_example(); } }
28) Une classe peut-elle avoir plusieurs constructeurs ?
Oui, une classe peut avoir plusieurs constructeurs avec des paramètres différents. Le constructeur utilisé pour la création d'objets dépend des arguments transmis lors de la création des objets.
29) Pouvons-nous remplacer les méthodes statiques d’une classe ?
Nous ne pouvons pas remplacer les méthodes statiques. Les méthodes statiques appartiennent à une classe et non à des objets individuels et sont résolues au moment de la compilation (pas au moment de l'exécution). Même si nous essayons de remplacer la méthode statique, nous n'obtiendrons pas d'erreur de complitaion, ni l'impact du remplacement lors de l'exécution de la méthode statique. code.
30) Dans l’exemple ci-dessous, quel sera le résultat ?
public class superclass { public void displayResult() { system.out.println("Printing from superclass"); } } public class subclass extends superclass { public void displayResult() { system.out.println("Displaying from subClass"); super.displayResult(); } public static void main(String args[]) { subclass obj = new subclass(); obj.displayResult(); } }
ans: La sortie sera :
Affichage à partir de la sous-classe
Impression à partir de la superclasse
31) String est-il un type de données en Java ?
String n'est pas un type de données primitif en Java. Lorsqu'une chaîne est créée en Java, il s'agit en fait d'un objet de JavaClasse .Lang.String qui est créée. Après la création de cet objet chaîne, toutes les méthodes intégrées de la classe String peuvent être utilisées sur l'objet chaîne.
32) Dans l'exemple ci-dessous, combien d'objets chaîne sont créés ?
String s1="I am Java Expert"; String s2="I am C Expert"; String s3="I am Java Expert";
Dans l'exemple ci-dessus, deux objets de JavaLa classe .Lang.String est créée. s1 et s3 sont des références au même objet.
33) Pourquoi les chaînes Java sont appelés Immuables ?
En Java, les objets chaîne sont appelés immuables car une fois la valeur attribuée à une chaîne, elle ne peut pas être modifiée et si elle est modifiée, un nouvel objet est créé.
Dans l'exemple ci-dessous, la référence str fait référence à un objet chaîne ayant la valeur « Valeur un ».
String str="Value One";
Lorsqu'une nouvelle valeur lui est attribuée, un nouvel objet String est créé et la référence est déplacée vers le nouvel objet.
str="New Value";
34) Quelle est la différence entre un tableau et un vecteur ?
Un tableau regroupe des données du même type primitif et est de nature statique, tandis que les vecteurs sont de nature dynamique et peuvent contenir des données de différents types de données.
35) Qu'est-ce que le multithreading ?
Le multithreading est un concept de programmation permettant d'exécuter plusieurs tâches de manière simultanée au sein d'un seul programme. Les threads partagent la même pile de processus et s’exécutent en parallèle. Il contribue à l’amélioration des performances de n’importe quel programme.
36) Pourquoi l'interface Runnable est utilisée dans Java?
L'interface exécutable est utilisée en Java pour implémenter des applications multithread. JavaL'interface .Lang.Runnable est implémentée par une classe pour prendre en charge le multithreading.
37) Quelles sont les deux manières d'implémenter le multi-threading dans Java?
Des applications multithread peuvent être développées dans Java en utilisant l’une des deux méthodologies suivantes :
1) En utilisant JavaInterface .Lang.Runnable. Les classes implémentent cette interface pour activer le multithreading. Il existe une méthode Run() dans cette interface qui est implémentée.
2) En écrivant une classe qui étend JavaClasse .Lang.Thread.
38) Lorsque de nombreux changements sont nécessaires dans les données, lequel faut-il privilégier ? Chaîne ou ChaîneBuffer?
Depuis la chaîneBufferLes s sont de nature dynamique et nous pouvons changer les valeurs de StringBuffer objets contrairement à String qui est immuable, c'est toujours un bon choix d'utiliser StringBuffer lorsque les données sont trop modifiées. Si nous utilisons String dans un tel cas, pour chaque modification de données, un nouvel objet String sera créé, ce qui entraînera une surcharge supplémentaire.
39) Quel est le but d'utiliser Break dans chaque cas d'instruction Switch ?
Break est utilisé après chaque cas (sauf le dernier) dans un commutateur afin que le code soit interrompu après le cas valide et ne circule pas également dans les cas suivants.
Si break n'est pas utilisé après chaque cas, tous les cas après le cas valide sont également exécutés, ce qui entraîne des résultats erronés.
40) Comment se fait la collecte des déchets Java?
En Java, lorsqu'un objet n'est plus référencé, collecte des ordures a lieu et l'objet est détruit automatiquement. Pour le garbage collection automatique, Java appelle la méthode System.gc() ou la méthode Runtime.gc().
41) Comment pouvons-nous exécuter n’importe quel code avant même la méthode principale ?
Si nous voulons exécuter des instructions avant même la création d'objets au moment du chargement de la classe, nous pouvons utiliser un bloc de code statique dans la classe. Toutes les instructions à l'intérieur de ce bloc de code statique seront exécutées une fois au moment du chargement de la classe avant même la création des objets dans la méthode principale.
42) Une classe peut-elle être à la fois une super-classe et une sous-classe ? Donnez un exemple.
Si une hiérarchie d’héritage est utilisée, une classe peut être à la fois une super classe pour une autre classe et une sous-classe pour une autre.
Dans l'exemple ci-dessous, la classe continent est une sous-classe de la classe mondiale et c'est la super classe de la classe pays.
public class world { .......... } public class continenet extends world { ............ } public class country extends continent { ...................... }
43) Comment les objets d'une classe sont créés si aucun constructeur n'est défini dans la classe ?
Même si aucun constructeur explicite n'est défini dans une classe Java, les objets sont créés avec succès car un constructeur par défaut est implicitement utilisé pour la création d'objets. Ce constructeur n'a aucun paramètre.
44) En multi-threading, comment pouvons-nous garantir qu'une ressource n'est pas utilisée par plusieurs threads simultanément ?
En multi-threading, l'accès aux ressources partagées entre plusieurs threads peut être contrôlé en utilisant le concept de synchronisation. En utilisant mot-clé synchronisé, nous pouvons garantir qu'un seul thread peut utiliser la ressource partagée à la fois et que les autres ne peuvent prendre le contrôle de la ressource qu'une fois qu'elle est devenue libre de l'autre qui l'utilise.
45) Peut-on appeler le constructeur d'une classe plus d'une fois pour un objet ?
Le constructeur est appelé automatiquement lorsque nous créons un objet à l'aide du nouveau mot-clé. Il n'est appelé qu'une seule fois pour un objet au moment de sa création et, par conséquent, nous ne pouvons pas invoquer à nouveau le constructeur pour un objet après sa création.
46) Il existe deux classes nommées classA et classB. Les deux classes sont dans le même package. Un membre privé de la classe A peut-il être accessible par un objet de la classe B ?
Les membres privés d'une classe ne sont pas accessibles en dehors de la portée de cette classe et aucune autre classe, même dans le même package, ne peut y accéder.
47) Peut-on avoir deux méthodes dans une classe du même nom ?
Nous pouvons définir deux méthodes dans une classe avec le même nom mais avec un nombre/type de paramètres différent. La méthode à appeler dépendra des paramètres transmis.
Par exemple, dans la classe ci-dessous, nous avons deux méthodes d'impression avec le même nom mais des paramètres différents. En fonction des paramètres, celui approprié sera appelé :
public class methodExample { public void print() { system.out.println("Print method without parameters."); } public void print(String name) { system.out.println("Print method with parameter"); } public static void main(String args[]) { methodExample obj1 = new methodExample(); obj1.print(); obj1.print("xx"); } }
48) Comment pouvons-nous faire une copie d’un objet Java ?
Nous pouvons utiliser le concept de clonage pour créer une copie d'un objet. En utilisant clone, nous créons des copies avec l'état réel d'un objet.
Clone() est une méthode d'interface Cloneable et, par conséquent, l'interface Cloneable doit être implémentée pour réaliser des copies d'objets.
49) Quel est l'avantage d'utiliser l'héritage ?
Le principal avantage de l'utilisation de l'héritage est la réutilisation du code, car l'héritage permet aux sous-classes de réutiliser le code de sa super classe. Le polymorphisme (extensibilité) est un autre grand avantage qui permet d'introduire de nouvelles fonctionnalités sans affecter les classes dérivées existantes.
50) Quel est le spécificateur d'accès par défaut pour les variables et les méthodes d'une classe ?
Le spécificateur d'accès par défaut pour les variables et la méthode est protégé par le package, c'est-à-dire que les variables et la classe sont disponibles pour toute autre classe mais dans le même package, pas en dehors du package.
51) Donnez un exemple d'utilisation des pointeurs dans Java classe.
Il n'y a aucun pointeur dans Java. Nous ne pouvons donc pas utiliser le concept de pointeurs dans Java.
52) Comment pouvons-nous restreindre l'héritage d'une classe afin qu'aucune classe ne puisse en être héritée ?
Si nous voulons qu’une classe ne soit étendue davantage par aucune classe, nous pouvons utiliser le mot-clé Final avec le nom de la classe.
Dans l'exemple suivant, la classe Stone est Final et ne peut pas être étendue.
public Final Class Stone { // Class methods and Variables }
53) Quelle est la portée d'accès du spécificateur d'accès protégé ?
Lorsqu'une méthode ou une variable est déclarée avec le spécificateur d'accès protégé, elle devient accessible dans la même classe, toute autre classe du même package ainsi qu'une sous-classe.
Modifier | Classe | Forfait | Sous-classe | Monde |
---|---|---|---|---|
public | Y | Y | Y | Y |
protégé | Y | Y | Y | N |
pas de modificateur | Y | Y | N | N |
Privé | Y | N | N | N |
54) Quelle est la différence entre Stack et Queue ?
Stack et Queue sont tous deux utilisés comme espace réservé pour une collection de données. La principale différence entre une pile et une file d'attente est que la pile est basée sur le principe du dernier entré, premier sorti (LIFO), tandis qu'une file d'attente est basée sur le principe FIFO (premier entré, premier sorti).
55) En Java, comment pouvons-nous interdire la sérialisation des variables ?
Si l'on souhaite que certaines variables d'une classe ne soient pas sérialisées, on peut utiliser le mot-clé transitoire tout en les déclarant. Par exemple, la variable trans_var ci-dessous est une variable transitoire et ne peut pas être sérialisée :
public class transientExample { private transient trans_var; // rest of the code }
56) Comment pouvons-nous utiliser des types de données primitifs comme objets ?
Les types de données primitifs comme int peuvent être traités comme des objets en utilisant leurs classes wrapper respectives. Par exemple, Integer est une classe wrapper pour le type de données primitif int. Nous pouvons appliquer différentes méthodes à une classe wrapper, comme à n’importe quel autre objet.
57) Quels types d’exceptions sont détectés au moment de la compilation ?
Les exceptions vérifiées peuvent être interceptées au moment de la compilation du programme. Les exceptions vérifiées doivent être gérées à l’aide du bloc try catch dans le code afin de compiler avec succès le code.
58) Décrire les différents états d'un thread.
Un fil dans Java peut être dans l'un des états suivants :
- Prêt : lorsqu'un thread est créé, il est à l'état Prêt.
- En cours d'exécution : un thread en cours d'exécution est en cours d'exécution.
- En attente : un thread qui attend qu'un autre thread libère certaines ressources est en état d'attente.
- Mort : un thread qui est devenu mort après l'exécution est à l'état mort.
59) Pouvons-nous utiliser un constructeur par défaut d'une classe même si un constructeur explicite est défini ?
Java fournit un constructeur par défaut sans argument si aucun constructeur explicite n'est défini dans un Java classe. Mais si un constructeur explicite a été défini, le constructeur par défaut ne peut pas être invoqué et le développeur ne peut utiliser que les constructeurs définis dans la classe.
60) Pouvons-nous remplacer une méthode en utilisant le même nom de méthode et les mêmes arguments mais des types de retour différents ?
La condition de base du remplacement de méthode est que le nom de la méthode, les arguments ainsi que le type de retour doivent être exactement les mêmes que ceux de la méthode remplacée. Par conséquent, l’utilisation d’un type de retour différent ne remplace pas une méthode.
61) Quel sera le résultat du morceau de code suivant ?
public class operatorExample { public static void main(String args[]) { int x = 4; system.out.println(x++); } }
Dans ce cas, l'opérateur postfix ++ est utilisé qui renvoie d'abord la valeur puis l'incrémente. Par conséquent, sa sortie sera 4.
61) Une personne dit qu'elle a compilé une classe Java avec succès sans même y avoir de méthode principale ? Est-il possible?
La méthode principale est un point d'entrée de Java classe et est cependant requis pour l'exécution du programme ; une classe est compilée avec succès même si elle n'a pas de méthode principale. Cependant, il ne peut pas être exécuté.
62) Pouvons-nous appeler une méthode non statique depuis l’intérieur d’une méthode statique ?
Les méthodes non statiques appartiennent aux objets d'une classe et ont une portée au niveau de l'objet. Afin d'appeler les méthodes non statiques à partir d'un bloc statique (comme à partir d'une méthode principale statique), un objet de la classe doit d'abord être créé. Ensuite, en utilisant la référence d’objet, ces méthodes peuvent être invoquées.
63) Quelles sont les deux variables d'environnement qui doivent être définies pour exécuter n'importe quel Java programmes?
Java les programmes ne peuvent être exécutés sur une machine qu'une fois que les deux variables d'environnement suivantes ont été correctement définies :
- variable CHEMIN
- Variable CHEMIN DE CLASSE
64) Les variables peuvent-elles être utilisées dans Java sans initialisation ?
In Java, si une variable est utilisée dans un code sans initialisation préalable par une valeur valide, le programme ne compile pas et renvoie une erreur car aucune valeur par défaut n'est affectée aux variables dans Java.
65) Un cours en Java être hérité de plus d'une classe ?
In Java, une classe peut être dérivée d'une seule classe et non de plusieurs classes. Les héritages multiples ne sont pas pris en charge par Java.
66) Un constructeur peut-il avoir un nom différent d'un nom de classe dans Java?
Constructeur en Java doit avoir le même nom que le nom de la classe et si le nom est différent, il n'agit pas comme un constructeur et le compilateur le considère comme une méthode normale.
67) Quel sera le résultat de Round(3.7) et Ceil(3.7) ?
Round(3.7) renvoie 4 et Ceil(3.7) renvoie 4.
68) Pouvons-nous utiliser goto dans Java aller à une ligne particulière ?
In Java, il n'y a pas de mot-clé goto et Java ne prend pas en charge cette fonctionnalité permettant d'accéder à une ligne étiquetée particulière.
69) Un thread mort peut-il être redémarré ?
En Java, un thread qui est à l’état mort ne peut pas être redémarré. Il n'y a aucun moyen de redémarrer un thread mort.
70) La déclaration de classe suivante est-elle correcte ?
public abstract final class testClass { // Class methods and variables }
Réponse : La déclaration de classe ci-dessus est incorrecte car une classe abstraite ne peut pas être déclarée comme Final.
71) JDK est-il requis sur chaque machine pour exécuter un Java programme?
JDK est un kit de développement de Java et est requis uniquement pour le développement et pour exécuter un Java programme sur une machine, JDK n'est pas requis. Seul JRE est requis.
72) Quelle est la différence entre la comparaison effectuée par la méthode égale et l'opérateur == ?
In Java, la méthode equals() est utilisée pour comparer le contenu de deux objets chaîne et renvoie vrai si les deux ont la même valeur tandis que l'opérateur == compare les références de deux objets chaîne.
Dans l'exemple suivant, equals() renvoie true car les deux objets chaîne ont les mêmes valeurs. Cependant, l'opérateur == renvoie false car les deux objets chaîne font référence à des objets différents :
public class equalsTest { public static void main(String args[]) { String str1 = new String("Hello World"); String str2 = new String("Hello World"); if (str1.equals(str2)) { // this condition is true System.out.println("str1 and str2 are equal in terms of values"); } if (str1 == str2) { //This condition is true System.out.println("Both strings are referencing same object"); } else { // This condition is NOT true System.out.println("Both strings are referencing different objects"); } } }
73) Est-il possible de définir une méthode dans Java classe mais fournissez-la implémentation dans le code d'un autre langage comme C ?
Oui, nous pouvons le faire en utilisant des méthodes natives. Dans le cas d'un développement basé sur des méthodes natives, nous définissons des méthodes statiques publiques dans notre Java classe sans son implémentation, puis l'implémentation se fait dans un autre langage comme C séparément.
74) Comment les destructeurs sont-ils définis dans Java?
In Java, aucun destructeur n'est défini dans la classe car cela n'est pas nécessaire. Java possède son propre mécanisme de récupération de place qui effectue le travail automatiquement en détruisant les objets lorsqu'ils ne sont plus référencés.
Java Questions et réponses d'entretien pour plus de 5 ans d'expérience
75) Une variable peut-elle être à la fois locale et statique ?
Non, une variable ne peut pas être à la fois statique et locale. Définir une variable locale comme statique donne une erreur de compilation.
76) Pouvons-nous avoir des méthodes statiques dans une interface ?
Les méthodes statiques ne peuvent être remplacées dans aucune classe, tandis que toutes les méthodes d'une interface sont par défaut abstraites et sont censées être implémentées dans les classes implémentant l'interface. Cela n’a donc aucun sens d’avoir des méthodes statiques dans une interface Java.
77) Dans une classe implémentant une interface, peut-on changer la valeur de n'importe quelle variable définie dans l'interface ?
Non, nous ne pouvons modifier la valeur d'aucune variable d'une interface dans la classe d'implémentation car toutes les variables définies dans l'interface sont par défaut publiques, statiques et finales et les variables finales sont comme des constantes qui ne peuvent pas être modifiées ultérieurement.
78) Est-il exact de dire qu'en raison de la fonctionnalité de récupération de place dans Java, un programme Java ne manque jamais de mémoire ?
Même si la collecte automatique des déchets est assurée par Java, cela ne garantit pas qu'un Java le programme ne manquera pas de mémoire car il est possible que la création de Java les objets sont effectués à un rythme plus rapide que le garbage collection, ce qui entraîne le remplissage de toutes les ressources mémoire disponibles.
Ainsi, le garbage collection aide à réduire les risques de manque de mémoire pour un programme, mais il ne le garantit pas.
79) Pouvons-nous avoir un autre type de retour que void pour la méthode principale ?
N, Java La méthode principale de classe ne peut avoir qu'un type de retour void pour que le programme soit exécuté avec succès.
Néanmoins, si vous devez absolument renvoyer une valeur à la fin de la méthode principale, vous pouvez utiliser System.exit(int status)
80) Je souhaite accéder à nouveau et utiliser un objet une fois qu'il a été récupéré. Comment c'est possible?
Une fois qu'un objet a été détruit par le ramasse-miettes, il n'existe plus sur le tas et il n'est plus possible d'y accéder. Il n'y a aucun moyen d'y faire référence à nouveau.
81) Dans Java programmation de threads, quelle méthode est une implémentation indispensable pour tous les threads ?
Run() est une méthode de l'interface Runnable qui doit être implémentée par tous les threads.
82) Je souhaite contrôler les connexions à la base de données dans mon programme et je souhaite qu'un seul thread puisse établir une connexion à la base de données à la fois. Comment puis-je mettre en œuvre cette logique ?
Réponse : Cela peut être mis en œuvre en utilisant le concept de synchronisation. Le code lié à la base de données peut être placé dans une méthode qui permet synchronisé mot-clé afin qu’un seul thread puisse y accéder à la fois.
83) Comment une exception peut-elle être levée manuellement par un programmeur ?
Afin de lever manuellement une exception dans un bloc de code, renversement le mot-clé est utilisé. Ensuite, cette exception est interceptée et gérée dans le bloc catch.
public void topMethod() { try { excMethod(); } catch (ManualException e) {} } public void excMethod { String name = null; if (name == null) { throw (new ManualException("Exception thrown manually "); } }
84) Je veux que ma classe soit développée de telle manière qu'aucune autre classe (même dérivée) ne puisse créer ses objets. Comment puis-je le faire ?
Si nous déclarons le constructeur d'une classe comme privé, il ne sera accessible par aucune autre classe et par conséquent, aucune autre classe ne pourra l'instancier et la formation de son objet sera limitée à elle-même uniquement.
85) Comment les objets sont stockés dans Java?
En Java, chaque objet lors de sa création obtient un espace mémoire à partir d'un tas. Lorsqu'un objet est détruit par un garbage collector, l'espace qui lui est alloué depuis le tas est réaffecté au tas et devient disponible pour tout nouvel objet.
86) Comment pouvons-nous trouver la taille réelle d’un objet sur le tas ?
En Java, il n'existe aucun moyen de connaître la taille exacte d'un objet sur le tas.
87) Laquelle des classes suivantes aura plus de mémoire allouée ?
Classe A : Trois méthodes, quatre variables, aucun objet
Classe B : cinq méthodes, trois variables, aucun objet
La mémoire n'est pas allouée avant la création des objets. Étant donné que pour les deux classes, aucun objet n'est créé, aucune mémoire n'est allouée sur le tas pour aucune classe.
88) Que se passe-t-il si une exception n'est pas gérée dans un programme ?
Si une exception n'est pas gérée dans un programme utilisant des blocs try catch, le programme est abandonné et aucune instruction ne s'exécute après l'instruction qui a provoqué le lancement de l'exception.
89) J'ai plusieurs constructeurs définis dans une classe. Est-il possible d'appeler un constructeur depuis le corps d'un autre constructeur ?
Si une classe possède plusieurs constructeurs, il est possible d'appeler un constructeur depuis le corps d'un autre en utilisant cette().
90) Qu'entend-on par classe anonyme ?
Une classe anonyme est une classe définie sans aucun nom dans une seule ligne de code à l'aide du nouveau mot-clé.
Par exemple, dans le code ci-dessous, nous avons défini une classe anonyme dans une ligne de code :
public java.util.Enumeration testMethod() { return new java.util.Enumeration() { @Override public boolean hasMoreElements() { // TODO Auto-generated method stub return false; } @Override public Object nextElement() { // TODO Auto-generated method stub return null; } }
91) Existe-t-il un moyen d'augmenter la taille d'un tableau après sa déclaration ?
Les tableaux sont statiques et une fois que nous avons spécifié leur taille, nous ne pouvons plus la modifier. Si nous voulons utiliser de telles collections où nous pouvons nécessiter un changement de taille (nombre d'éléments), nous devrions préférer le vecteur au tableau.
92) Si une application contient plusieurs classes, est-il acceptable d'avoir une méthode principale dans plus d'une classe ?
S'il existe une méthode principale dans plusieurs classes dans une application Java, cela ne posera aucun problème car le point d'entrée de toute application sera une classe spécifique et le code démarrera uniquement à partir de la méthode principale de cette classe particulière.
93) Je souhaite conserver les données des objets pour une utilisation ultérieure. Quelle est la meilleure approche pour le faire ?
La meilleure façon de conserver les données pour une utilisation future est d’utiliser le concept de sérialisation.
94) Qu'est-ce qu'une classe locale dans Java?
In Java, si nous définissons une nouvelle classe à l'intérieur d'un bloc particulier, cela s'appelle une classe locale. Une telle classe a une portée locale et n'est pas utilisable en dehors du bloc où elle est définie.
95) Chaîne et chaîneBuffer les deux représentent des objets String. Pouvons-nous comparer String et StringBuffer in Java?
Bien que String et StringBuffer les deux représentent des objets String, nous ne pouvons pas les comparer entre eux et si nous essayons de les comparer, nous obtenons une erreur.
96) Quelle API est fournie par Java pour les opérations sur un ensemble d'objets ?
Java fournit une API de collection qui fournit de nombreuses méthodes utiles pouvant être appliquées à un ensemble d'objets. Certaines des classes importantes fournies par l'API Collection incluent ArrayList, HashMap, TreeSet et TreeMap.
97) Pouvons-nous convertir n'importe quel autre type en type booléen avec la conversion de type ?
Non, nous ne pouvons ni convertir un autre type primitif en type de données booléen, ni convertir un type de données booléen en un autre type de données primitif.
98) Pouvons-nous utiliser différents types de retour pour les méthodes en cas de substitution ?
L'exigence de base de la substitution de méthode dans Java est que la méthode remplacée doit avoir le même nom et les mêmes paramètres. Mais une méthode peut être remplacée par un type de retour différent tant que le nouveau type de retour étend l'original.
Par exemple, la méthode renvoie un type de référence.
Class B extends A { A method(int x) { //original method } B method(int x) { //overridden method } }
99) Quelle est la classe de base de toutes les classes d’exception ?
In Java, Java.lang.Throwable
est la super classe de toutes les classes d'exception et toutes les classes d'exception sont dérivées de cette classe de base.
100) Quel est l'ordre d'appel des constructeurs en héritage ?
En cas d'héritage, lorsqu'un nouvel objet d'une classe dérivée est créé, le constructeur de la super classe est d'abord invoqué, puis le constructeur de la classe dérivée est invoqué.
Préparez-vous pour votre entretien d'embauche !!! Traverser Java Tutoriel pour être mieux préparé.
Ce détail Java Mock Test Quiz vous aidera à dissiper les doutes sur Java questions d'entretien et vous aidera également à réussir l'entretien.
Ces Java et Java 8 questions d'entretien vous aidera également dans votre soutenance (orale)