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中文網其他相關文章!