ホームページ  >  記事  >  Java  >  Javaのmainメソッドの詳細な配置

Javaのmainメソッドの詳細な配置

黄舟
黄舟オリジナル
2017-09-08 10:01:102260ブラウズ

この記事では、主に Java の main メソッドの面接の質問の詳細をまとめています。ここでは、必要としている友人が参照できる 10 の面接の質問を紹介します。 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() が非静的であることが許可されている場合、JVM は main メソッドが呼び出されたときにそのクラスをインスタンス化する必要があります。

インスタンス化するときは、クラスのコンストラクターを呼び出す必要があります。このクラスのコンストラクターにパラメーターがある場合、あいまいさが生じます。

たとえば、次のプログラムでは、クラス "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() メソッドを非静的として宣言できますか?

いいえ、JVM がクラスをインスタンス化せずに main() メソッドを呼び出せるように、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() メソッドはパブリックである必要があります。 main() メソッドをプライベートおよび保護として定義したり、アクセス修飾子を使用したりすることはできません。

これは、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 で同期できます。main メソッドの宣言で synchronized 修飾子を使用できるため、main メソッドを Java で同期できます。

以上がJavaのmainメソッドの詳細な配置の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。