La Certification OCA Java SE8 Programmer I est le premier certificat essentiel à avoir avant de passer l'examen OCP. On s'attend à ce que l'on passe d'abord par l'OCA avant de passer l'OCP. En tant que débutant, les questions peuvent être délicates. Vous venez du monde Javascript et ne connaissez rien à Java. Cet article vous couvre.
Ici, nous souhaitons discuter de certaines des questions délicates qui peuvent être posées lors de l'examen OCA dans le but d'aider ceux qui souhaitent se présenter à l'examen. N'oubliez pas de partager certaines des questions que vous considérez délicates dans les commentaires. Aidons-nous les uns les autres.
Voici celui que je vois toujours dans la plupart des braindumps passés.
Type de question 1 Comprend un code simple mais des options de réponse délicates ou déroutantes.
Voici l'exemple de code :
class JavaCertQType1 { public static void main(String... cmd) { main("private", cmd); } private static void main(String type, String[] args) { System.out.println(args[0] + args[1]); } }
QSN -> Quel est le résultat lorsque la classe JavaCertQType1 est exécutée à l'aide de la commande suivante (choisissez 1 option) :
java JavaCertQType1 1 11 EJava Guru
Combien d'entre vous ont obtenu la bonne réponse avant de vérifier la réponse ?
Si vous vérifiez correctement, vous pouvez voir que la méthode main est surchargée et qu'elle fonctionne parfaitement en Java. Les méthodes principales en Java peuvent être privées, mais elles ne serviront pas de point d'entrée pour l'exécution du programme lorsque vous essayez d'exécuter la classe directement avec la commande Java ClassName.
Oui tu as l'habitude de voir ça
public static void main(String[] args) mais ceci
private static void main(String[] args) est également autorisé.
Passons maintenant à la réponse
111
Voici l'explication
Je vois quatre arguments de ligne de commande 1 11 EJava Guru. Ces arguments sont transmis à la méthode main(String... cmd) sous forme de tableau cmd, qui contiendra {"1", "11", "EJava", "Guru"}. La méthode main surchargée exécute la méthode print. Nous lisons les arguments de l'index 0, donc args[0] est "1" et args[1] est "11".
Vous vous demandez peut-être pourquoi nous n’avons pas choisi 1 11 comme réponse. La raison en est qu'en Java, les arguments de ligne de commande transmis lors de l'exécution du programme sont toujours traités comme des chaînes.
Ce sont des chaînes, donc l'opérateur effectue une concaténation de chaînes
"1" "11"
et la réponse est
111.
Que se serait-il passé si nous avions supprimé la méthode principale privée tout en l'appelant notre méthode principale ??
class JavaCertQType1 { public static void main(String... cmd) { main("private", cmd); // Calls the overloaded private main method } }
Commande d'exécution :
java JavaCertQType1 1 11 EJava Guru
La JVM rechercherait la méthode public static void main(String... cmd) pour démarrer le programme. Voyant que le code à l'intérieur de la méthode principale publique appelle une autre méthode nommée main, il aurait essayé de trouver la méthode principale surchargée et n'aurait pas réussi à la trouver. Puisqu'il n'y a pas de signature correspondante, la compilation échoue, ce qui conduit à un
Erreur de compilation
NB
Une méthode principale peut être privée, mais elle ne peut pas servir de point d'entrée pour l'exécution d'un programme par la JVM. Il est utile pour la surcharge de méthode ou la logique interne mais doit être invoqué par une autre méthode (comme la main publique)
Merci d'avoir lu mon article et n'oubliez pas de partager des questions plus délicates dans les commentaires. Amenez-les ici et discutons-en.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!