ホームページ >Java >&#&チュートリアル >Java の「main」メソッドが「static」として宣言されているのはなぜですか?

Java の「main」メソッドが「static」として宣言されているのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-22 04:20:09561ブラウズ

Why is the `main` method in Java declared as `static`?

Java メイン メソッド: 静的宣言を使用する理由

Java メイン メソッドには特定のシグネチャがあります:

public static void main(String[] args) {
    ...
}

ここで疑問が生じます:静的修飾子はメインに必須ですか? method?

要件ではなく規約

最初の印象に反して、main メソッドの静的宣言は言語上の必然性ではなく、規約です。驚かれるかもしれませんが、メソッド名 "main()" と String[] パラメータさえも単なる規則に過ぎません。

代替規則

Java 21 では代替規則が導入されました。これにより、String[] パラメータ、public 修飾子、さらには static 修飾子の省略が可能になります。 static 修飾子が存在しない場合、クラスのインスタンスは main() 呼び出しの前に作成され、クラスには非プライベートのゼロパラメーター コンストラクターが必要になります。

Java Native Interface (JNI) と java.exe

java.exe (または Windows では javaw.exe) を介した Java プログラムの実行には、JNI が関係します。 JVM を DLL としてロードする呼び出し。 JNI は、JVM 環境と C/C 環境の間のブリッジとして機能します。

java.exe: 単純な C アプリケーション

java.exe は本質的に、次のような単純化された C アプリケーションです。コマンドライン引数を解析し、JVM 内に String 配列を作成し、JNI を使用して指定されたクラスで main() メソッドを見つけ、引数の配列を使用してそれを呼び出します。このプロセスは Java リフレクションに似ており、代わりにネイティブ関数呼び出しを使用します。

java.exe のカスタマイズ

java.exe ( JDK) を使用してその機能を変更します。これは、ランチャーのカスタマイズ、固有のアイコンの提供、特定のシナリオの処理 (例: main() への COM ハンドルの受け渡し) を行うために Java ベースのアプリケーションで使用されます。

利便性と歴史的影響

main メソッドの静的な性質は利便性をもたらし、C から採用された命名規則と一致します。これにより、IDE は次のことを行うことができます。プロジェクト内の起動可能なクラスを自動検出します。代替手段は存在しますが、「静的」メイン メソッドは Java プログラミングの普遍的な慣例として存続します。

以上がJava の「main」メソッドが「static」として宣言されているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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