1) Quels sont les blocs statiques et les initialiseurs statiques en Java ?
Les blocs statiques ou initialiseurs statiques sont utilisés pour initialiser les champs statiques en Java. Nous déclarons des blocs statiques lorsque nous souhaitions initialiser les champs statiques dans notre classe. Les blocs statiques sont exécutés exactement une fois lorsque la classe est chargée. Les blocs statiques sont exécutés avant même l’exécution des constructeurs.
2) Comment appeler un constructeur depuis un ’autre constructeur ?
Dans la même classe, si nous voulons appeler un constructeur à partir d’un autre, nous utilisons la méthode this(). En fonction du nombre de paramètres que nous transmettons, la méthode this() appropriée est appelée.
Restrictions d’utilisation de cette méthode :
-Cela doit être à la première instruction du constructeur,
-Nous ne pouvons pas utiliser deux méthodes this() dans le constructeur.
3) Qu’est-ce que le overriding d’une méthode en Java ?
Si nous avons des méthodes avec la même signature (même nom, même signature, même type de retour) dans la super classe et la sous-classe alors nous disons que la méthode de sous-classe est remplacée par la superclasse.
Quand utiliser le overriding en Java
Si nous voulons la même méthode avec un comportement différent dans la superclasse (classe mère) et la sous-classe (classe fille), nous optons pour la redéfinition ou le overriding.
Lorsque nous appelons une méthode remplacée avec une référence de sous-classe, la méthode de sous-classe est appelée en cachant la méthode de la classe mère.
4) Que signifie le mot-clé Super en Java ?
Les variables et les méthodes de la classe mère peuvent être remplacées dans la classe fille. En cas de redéfinition, un objet de sous-classe appelle ses propres variables et méthodes. La sous-classe ne peut pas accéder aux variables et méthodes de la superclasse car les variables ou les méthodes remplacées masquent les méthodes et variables de la superclasse.
Par ailleurs, java fournit toujours un moyen d’accéder aux membres de la classe mère même si ses membres sont remplacés. Super est utilisé pour accéder aux variables, méthodes et constructeurs de la classe mère.
Super peut être utilisé sous deux formes :
– Il sert à appeler le constructeur de la classe mère.
– La deuxième consiste à appeler des variables et des méthodes de la classe mère. Ce mot clé doit être présent dans la première déclaration.
5) Quelle est la différence entre la surcharge de méthode (Method Overloading) et la redéfinition d’une méthode (Method Overriding) en Java ?
Surcharge de méthode | Redéfinition de méthode |
La surcharge de méthode se produit dans la même classe | Le remplacement de méthode se produit entre deux classes, superclasse et sous-classe. |
Comme cela implique une seule classe, l’héritage n’est pas impliqué. | Étant donné que le remplacement de méthode se produit entre la superclasse et la sous-classe, l’héritage est impliqué. |
Les paramètres doivent être différents lorsque nous effectuons une surcharge | Les paramètres doivent être les mêmes. |
Le polymorphisme statique peut être obtenu en utilisant la surcharge de méthode | Le polymorphisme dynamique peut être obtenu en utilisant la substitution de méthode. |
En surchargeant, une méthode ne peut pas cacher l’autre | En remplaçant la méthode de sous-classe, elle cache celle de la méthode de superclasse. |
6) Quelle est la différence entre une classe abstraite et une interface ?
Interface | Classe abstraite |
L’interface ne contient que des méthodes abstraites. | La classe abstraite peut contenir des méthodes abstraites, des méthodes définies ou les deux à la fois. |
Les spécificateurs d’accès pour les méthodes dans l’interface doivent être publics. | Il peut y avoir n’importe quel spécificateur d’accès pour les méthodes de la classe abstraite sauf le private. |
Les variables définies doivent être publiques, statiques ou finales. | Sauf les privées, les variables peuvent avoir n’importe quel spécificateur d’accès |
L’héritage multiple en Java est implémenté à l’aide de l’interface. | Nous ne pouvons pas réaliser d’héritage multiple en utilisant une classe abstraite. |
Pour implémenter une interface, nous utilisons le mot-clé Implements. | Pour implémenter une interface, nous utilisons le mot-clé Implements. |
7) Pourquoi Java est-il indépendant de la plateforme ?
La fonctionnalité la plus unique de Java c’est qu’il est indépendant de la plate-forme. Dans n’importe quel langage de programmation, le code source est compilé en code exécutable. Cela ne peut pas être exécuté sur toutes les plates-formes. Quand javac compile un java programme, il génère un fichier exécutable appelé fichier .class
Ce dernier contient ce qu’on appelle le bytecode . Le bytecode est interprété uniquement par les JVM. Étant donné que ces JVM sont disponibles sur toutes les plates-formes par Sun Microsystems, nous pouvons exécuter ce byte code sur n’importe quelle plate-forme.
Le code d’octet généré dans l’environnement Windows peut également être exécuté dans l’environnement Linux. Cela rend la plate-forme Java indépendante.
8) Qu’est-ce que la surcharge de méthode en Java ?
Une classe ayant deux méthodes ou plus avec le même nom mais avec des arguments différents, on dit alors que ces méthodes sont surchargées. Le polymorphisme ad hoc est obtenu en Java en utilisant la surcharge des méthodes.
La surcharge de méthodes est utilisée lorsque nous souhaitons que les méthodes effectuent des tâches similaires mais avec des entrées ou des valeurs différentes. Lorsqu’une méthode surchargée est invoquée, Java vérifie d’abord le nom de la méthode, ainsi que le nombre d’arguments et le type d’arguments, ensuite le compilateur pourrait exécuter cette méthode.
Remarque : le type de retour ne fait pas partie de la signature de la méthode. nous pouvons avoir des méthodes avec différents types de retour, mais le type de retour seul n’est pas suffisant pour appeler une méthode en Java.
9) Quelle est la différence entre C++ et Java ?
Java | C++ |
Java est indépendant de la plate-forme | C++ dépend de la plate-forme |
Il n’existe pas pas de pointeurs en Java | Il existe des pointeurs en C++ |
Il n’existe pas de surcharge d’opérateur en Java | C ++ a une surcharge d’opérateurs |
Il existe un ramasse-miette en Java | Il n’existe pas de ramasse-miette |
Prend en charge le multithreading | Ne prend pas en charge le multithreading |
Il n’existe pas de templates en Java | Il existe des templates en C++ |
Il n’existe pas de variables globales en Java | Il existe des variables globales en C++ |
10) Qu’est-ce que le compilateur JIT ?
Le compilateur JIT signifie Just-In-Time. Le compilateur JIT compile le bytecode en code exécutable (code machine natif). JIT est une partie de la JVM. Il ne peut pas convertir un programme Java complet en code exécutable, mais il le convertit au fur et à mesure des besoins pendant l’exécution.
11) Qu’est-ce que le bytecode en Java ?
Lorsqu’un compilateur javac compile une classe, il génère un fichier .class. Ce fichier .class contient un ensemble d’instructions appelées bytecode . Ce dernier est un langage indépendant de la machine et contient un ensemble d’instructions qui doivent être exécutées uniquement par JVM.
12) C’est quoi la différence entre this() et super() en java ?
this() est utilisé pour accéder à un constructeur à partir d’un autre dans la même classe tandis que super() est utilisé pour accéder au constructeur de superclasse. Pour les 2 mots clés this(), ils doivent être à la première instruction du constructeur.
13) Qu’est-ce qu’une classe en Java?
Les classes sont une unité fondamentale ou de base dans la programmation orientée objet. Une classe est une sorte de plan ou de modèle pour les objets. La classe définit des variables et des méthodes. Une classe indique quel type d’objets nous voudrions créons.
Par exemple, la classe Département nous indique que nous pouvons créer des objets de type département. Nous pouvons créer n’importe quel nombre d’objets de département.
Toutes les constructions de programmation en Java résident dans une classe. Lorsque la JVM commence à s’exécuter, elle recherche d’abord la classe lors de la compilation. Chaque application Java doit avoir au moins une classe et une méthode principale.
La classe commence par le mot-clé de class. Le nom du fichier doit se terminer par l’extension .java.
14) Qu’est-ce qu’un objet ?
Un objet est une instance de classe. Une classe définit le type d’objet. Chaque objet appartient à une classe et chaque objet contient un état et un comportement. L’état est déterminé par la valeur des attributs et le comportement est appelé une méthode. Les objets sont également appelés comme instance.
15) Qu’est-ce que la méthode en Java ?
La méthode contient le corps exécutable qui peut être appliqué à l’objet spécifique de la classe. La méthode comprend le nom, les paramètres ou arguments, le type de retour et un corps de code exécutable.
16) Qu’est-ce que l’encapsulation ?
Grâce à l’encapsulation, nous pouvons masquer et protéger les données stockées dans les objets Java. Java prend en charge l’encapsulation via le contrôle d’accès. Il existe quatre modificateurs de contrôle d’accès aux niveaux Java. Il existe le public, private, protected et par le default.
Par exemple, prenons une classe Voiture. Dans la voiture, nous avons de nombreuses pièces dont le conducteur n’a pas besoin de savoir ce qu’elle contient. Il doit uniquement savoir comment démarrer et arrêter la voiture. Nous pouvons donc exposer tout ce qui est requis et masquez le reste en utilisant l’encapsulation.
17) Pourquoi la méthode main() est déclaré comme étant ‘public’, ‘static’ et ‘void’ en Java ?
« public » est un spécificateur d’accès qui peut être utilisé en dehors de la classe. Lorsque la méthode principale est déclarée publique, cela signifie qu’elle peut être utilisée en dehors de la classe.
« static » : Pour appeler une méthode, nous avons besoin d’un objet. Parfois, il peut être nécessaire d’appeler une méthode sans l’aide d’un objet. Ensuite, nous déclarons cette méthode comme statique. JVM appelle la méthode main() sans créer d’objet en déclarant ce mot-clé là.
« void » : le type de retour void est utilisé lorsqu’une méthode ne renvoie aucune valeur. La méthode main() ne renvoie aucune valeur, donc main() est déclarée void.
18) A quoi sert la méthode main() en java ?
La méthode main() est le point de départ de l’exécution de toutes les applications Java. String args[] est un tableau d’objets chaîne que nous devons transmettre à partir des arguments de ligne de commande. Chaque application Java doit avoir au moins une méthode principale.
19) Qu’est-ce qu’un constructeur en Java ?
Un constructeur est une méthode spéciale utilisée pour initialiser des objets en Java.
Nous utilisons des constructeurs pour initialiser toutes les variables de la classe lorsqu’un objet est créé. Au fur et à mesure qu’un objet est créé, il est initialisé automatiquement à l’aide d’un constructeur en java. Nous avons deux types de constructeurs, un constructeur par défaut et un constructeur paramétré.
Signature : public classname() { } Signature : public classname(parameters list) { }
20) Quelle est la différence entre la méthode length et length() en Java ?
-length() : Dans la classe String, nous avons la méthode length() qui est utilisée pour renvoyer le nombre de caractères dans la chaîne.
Exemple :
String str = “Hello World”; System.out.println(str.length()); Str.length() // retournera 11 caractères avec l'espace compris.
-length : nous avons une variable d’instance de longueur dans les tableaux qui renverra le nombre de valeurs ou d’objets dans un tableau.
String days[]={” Sun”,”Mon”,”wed”,”thu”,”fri”,”sat”}; //Renvoie 6 puisque le nombre de valeurs dans le tableau jours est 6.
21) Qu’est-ce que le code ASCII ?
ASCII signifie American Standard code for Information Interchange. La plage de caractères ASCII est comprise entre 0 et 255. Nous ne pouvons pas ajouter plus de caractères au jeu de caractères ASCII. Ce dernier ne prend en charge que l’anglais.
22) Qu’est-ce qu’Unicode ?
L’Unicode est un jeu de caractères développé par Unicode Consortium. Pour prendre en charge toutes les langues du monde, Java prend en charge les valeurs Unicode. Les caractères Unicode étaient représentés par 16 bits et leur plage de caractères est comprise entre 0 et 65 535. Java utilise le code ASCII pour tous les éléments d’entrée, à l’exception des chaînes de caractères (Strings), des identifiants et des commentaires. Si nous voulons utiliser le telugu à titre d’exemple, nous pouvons utiliser des caractères telugu pour les identifiants. Nous pouvons même saisir aussi des commentaires avec cette langue.
23) C’est quoi la différence entre la constante de caractère (Character Constant) et la constante de chaîne (String Constant) en Java ?
La constante de caractère est entourée par des guillemets simples (straight single quote). Les constantes de chaîne sont placées entre guillemets doubles (straight double quote). Les constantes de caractères peuvent contenir un chiffre ou à un caractère. Les constantes de chaîne sont une collection de caractères.
Ex : ‘2’, ‘A’
Ex : ”Bonjour tout le monde”
24) Que sont les constantes et comment créer des constantes en Java ?
Les constantes sont des valeurs fixes dont les valeurs ne peuvent pas être modifiées pendant l’exécution du programme. Nous créons des constantes en Java en utilisant le mot-clé final.
25) Différence entre les opérateurs ‘>>’ et ‘>>>’ en Java ?
‘>>’ est un opérateur de décalage vers la droite qui décale tous les bits d’une valeur vers la droite autant de fois le nombre est spécifié.