3

Javapublic static void main(String[] args)によって提供されるクラスの組み込み関数、ユーザー定義関数、またはオーバーライドされた関数はどれですか? インターフェイスまたはクラス内で宣言または定義されている場合、その宣言はどこにありますか?

4

4 に答える 4

15

JLS 12

Java 仮想マシンは、指定されたクラスのメソッド main を呼び出して実行を開始し、文字列の配列である単一の引数を渡します。

すべての Java アプリケーションにはmain()メソッドが必要です。JVM は、アプリケーションの起動中にメソッドを探しmain()ます。ここから実行が始まります。いいえ、組み込みではありませんmain()。アプリケーションの開始実行ポイントとなるクラスでメソッドを定義します。main() メソッドはpublicstatic、 returnvoidである必要があり、1 つのパラメーター (String配列) を受け入れます。このようなメソッドを持つクラスはmain()、Java アプリケーションの開始点として使用できます。

JVM 仕様 5.2 :

Java 仮想マシンは、ブートストラップ クラスローダ (§5.3.1) を使用して、実装依存の方法で指定された初期クラスを作成することによって起動します。次に、Java 仮想マシンは初期クラスをリンクして初期化し、パブリック クラス メソッド void main(String[]) を呼び出します。このメソッドを呼び出すと、それ以降のすべての実行が駆動されます。メイン メソッドを構成する Java 仮想マシンの命令を実行すると、追加のクラスとインターフェイスのリンク (およびその結果としての作成) と、追加のメソッドの呼び出しが発生する場合があります。

于 2013-07-20T06:17:56.367 に答える
6

インターフェイスによって定義されていません。言語仕様では、JRE が実行を開始するときに検索する関数であると規定されています。

于 2013-07-20T06:17:12.463 に答える