OCA Java SE8 程序员 I 认证 是参加 OCP 考试之前必须拥有的第一个基本证书。预计应先参加 OCA,然后再参加 OCP。作为初学者,问题可能很棘手。您来自 Javascript 世界,对 Java 一无所知。这篇文章已经涵盖了你。
在这里我们想讨论一些OCA考试中可能会出现的棘手问题,旨在帮助那些想要参加考试的人。不要忘记在评论中分享一些您认为棘手的问题。让我们互相帮助吧。
这是我在过去大多数脑力转储中经常看到的。
问题类型 1 包含简单的代码,但答案选项很棘手或令人困惑。
以下是代码示例:
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 ->使用以下命令执行类 JavaCertQType1 时的输出是什么(选择 1 选项):
java JavaCertQType1 1 11 EJava 大师
在检查答案之前,你们中有多少人答对了答案?
如果你检查正确的话,你可以看到 main 方法被重载了,在 Java 中完全没问题。 Java 中的 Main 方法可以是私有的,但当您尝试使用 Java ClassName 命令直接运行类时,它们不会作为程序执行的入口点。
是的,你已经习惯看到这个
public static void main(String[] args) 但这
private static void main(String[] args) 也是允许的。
现在让我们来寻找答案
111
解释如下
我看到四个命令行参数 1 11 EJava Guru。这些参数作为数组 cmd 传递给 main(String... cmd) 方法,其中将包含 {"1", "11", "EJava", "Guru"}。重载的main方法执行print方法。我们从索引 0 读取参数,因此 args[0] 为“1”,args[1] 为“11”。
您可能想知道为什么我们不选择 1 11 作为答案。原因是在 Java 中,程序执行期间传递的命令行参数始终被视为字符串。
这些是字符串,因此运算符执行字符串连接
“1”“11”
答案是
111.
如果我们删除了私有 main 方法但仍将其称为我们的 main 方法,会发生什么?
class JavaCertQType1 { public static void main(String... cmd) { main("private", cmd); // Calls the overloaded private main method } }
执行命令:
java JavaCertQType1 1 11 EJava 大师
JVM 会寻找 public static void main(String... cmd) 方法来启动程序。看到公共 main 方法内的代码调用了另一个名为 main 的方法,它会尝试查找重载的 main 方法,但找不到它。由于没有匹配的签名,因此无法编译,导致
编译错误
注意
main 方法可以是私有的,但不能作为 JVM 执行程序的入口点。它对于方法重载或内部逻辑很有用,但必须由另一个方法(如 public main)调用
感谢您阅读我的文章,不要忘记在评论中分享更多棘手的问题。把它们带到这里来,我们来讨论一下。
以上是考试中会出现哪些类型或格式的问题? (OCA Java SE 程序员 I 认证)的详细内容。更多信息请关注PHP中文网其他相关文章!