好程式設計師Java教程分享經典Java main方法面試題

好程式設計師IT發表於2019-07-04

  好程式設計師 Java 教程 分享經典 Java main 方法面試題 以下是比較經典的關於 Java main 方法的面試題,與其說是 Java 面試題,其實也是 Java 的一些最基礎知識問題,分享給大家,如有錯誤,請指出。

   1. 不用 main 方法如何定義一個類?

   不行,沒有 main 方法我們不能執行 Java 類。

   Java 7 之前,你可以透過使用靜態初始化執行 Java 類。但是,從 Java 7 開始就行不通了。

   2.main() 方法需要的引數不是字串陣列?

   不是的, main() 方法的引數必須是字串陣列。

   但是,在引進變參時,你可以將字串型別的變參作為引數傳遞給 main() 方法。變參一定得是陣列。

   package com.instanceofjava;public class MainMethod

   {public static void main(String args[])

   {

   }

   }

   3. 我們能不能改變 main() 方法的返回型別?

   不能, main() 方法的返回型別只能是空。任何其它型別都是不能接受的。

   package com.instanceofjava;

   public class A

   {

   public static int main(String[] args)

   {

    return 1;    //run time error : No main method found

   }

   }

   4.main() 方法為什麼必須是靜態的?

   main() 方法一定是靜態的。

   如果 main() 允許是非靜態的,那麼在呼叫 main 方法時, JVM 就得例項化它的類。

   在例項化時,還得呼叫類的建構函式。如果這個類的建構函式有引數,那麼屆時就會出現歧義。

   例如,在下面的程式中,在例項化類 “A” 的時候, JVM 傳遞什麼引數?

   package com.instanceofjava;

   public class A

   {

   public MainMethod(int i)

   {

   //Constructor taking one argument

   }

    public void main(String[] args)

   {

   //main method as non-static

   }

   5. 我們能不能宣告 main() 方法為非靜態?

   不能, main() 方法必須宣告為靜態的,這樣 JVM 才可以呼叫 main() 方法而無需例項化它的類。

   如果從 main() 方法去掉 “static” 這個宣告,雖然編譯依然可以成功,但在執行時會導致程式失敗。

   package com.instanceofjava;

   public class A

   {

   public void main(String[] args)

   {

   System.out.println("indhu");         //Run time error

   }

   }

   6. 我們能否過載 main() 方法?

   可以,我們可以過載 main() 方法。一個 Java 類可以有任意數量的 main() 方法。

   為了執行 java 類,類的 main() 方法應該有例如 “public static void main(String[] args)” 的宣告。如果你對此宣告做任何修改,編譯也是可以成功的。但是,執行不了 Java 程式。你會得到執行時錯誤,因為找不到 main 方法。

   package com.instanceofjava;public class A

   {public static void main(String[] args)

   {

   System.out.println("Indhu");

    }void main(int args)

   {

   System.out.println("Sindhu");

   }long main(int i, long d)

   {

   System.out.println("Saidesh");return d;

   }

   }

   7. 我們能否宣告 main() 方法為 private protected ,或者不用訪問修飾符?

   不能, main() 方法必須 public 。你不能定義 main() 方法為 private protected ,也不能不用訪問修飾符。

   這是為了能讓 JVM 訪問 main() 方法。如果你不定義 main() 方法為 public ,雖然編譯也會成功,但你會得到執行時錯誤,因為找不到 main 方法。

   package com.instanceofjava;

   public class A

   {

   private static void main(String[] args)

   {

   //Run time error

   }

   }

   8. 我們能否在 Java 中覆蓋 main 方法?

   不能,你不能在 Java 中覆蓋 main 方法。這是因為 main 方法是靜態方法,而在 Java 中靜態方法在編譯時會結合在一起,所以你在 Java 中不能覆蓋靜態方法。

   9. 我們能否在 Java 中終結 main 方法?

   你可以在 Java 中終結 main 方法。 JVM 對此沒問題。

   10. 我們能否在 Java 中同步 main 方法?

   是的, main 方法可以在 Java 中同步, synchronized 修飾符允許用於 main 方法的宣告中,這樣就可以在 Java 中同步 main 方法了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2648978/,如需轉載,請註明出處,否則將追究法律責任。

相關文章