Javaプログラムにおいて、プログラムの実行を開始するポイント、または単にJavaプログラムのエントリーポイントはmain()メソッドです。 それゆえ、main() メソッドは Java の最も重要なメソッドの 1 つであり、これを正しく理解することは非常に重要です。
main()メソッドの最も一般的な構文を示します。
classGeeksforGeeks { publicdiv staticvoidmain(String args) { iv System.out.println();
} }
I am a Geek
説明をします。
public static void main文の中のすべての単語は、JVMにとって意味があります。
- パブリック。 これはアクセス修飾子で、どこから誰がそのメソッドにアクセスできるかを指定します。 main()メソッドをパブリックにすると、グローバルに利用できるようになります。 パブリックにすることで、現在のクラスには存在しないメソッドを、JVMがクラス外から呼び出すことができるようになります。
classGeeksforGeeks {privatestaticvoidmain(String args){System.out.println();}}Error: Main method not found in class, please define the main method as:public static void main(String args)or a JavaFX application class must extend javafx.application.Application
- 静的なもの。 メソッドに関連付けられたキーワードで、クラスに関連するメソッドになります。 main()メソッドはスタティックなので、JVMはクラスをインスタンス化せずに呼び出すことができます。 これにより、JVMがmain()メソッドを呼び出すためだけに宣言されたオブジェクトが使用していたメモリの無駄を省くことができます。
classGeeksforGeeks {publicvoidmain(String args){System.out.println();}}Error: Main method is not static in class test, please define the main method as:public static void main(String args)
- 静的なもの。 メソッドに関連付けられたキーワードで、クラスに関連するメソッドになります。 main()メソッドはスタティックなので、JVMはクラスをインスタンス化せずに呼び出すことができます。 これにより、JVMがmain()メソッドを呼び出すためだけに宣言されたオブジェクトが使用していたメモリの無駄を省くことができます。
- Void: キーワードのひとつで、メソッドが何も返さないことを指定するために使われます。 main()メソッドは何も返さないので、その戻り値の型はvoidです。 main()メソッドが終了すると同時に、Javaプログラムも終了します。 JVMはmain()メソッドの戻り値を使って何もできないので、main()メソッドから戻ることは意味がありません。
classGeeksforGeeks {publicstaticintmain(String args){System.out.println();returndiv1;}}Error: Main method not found in class, please define the main method as:public static void main(String args)or a JavaFX application class must extend javafx.application.Application
- main: Javaのmainメソッドの名前です。 JVMがJavaプログラムの開始点として探す識別子です。 キーワードではありません。
classGeeksforGeeks {publicstaticvoidmyMain(String args){です。System.out.println("I am a Geek");}}Error: Main method not found in class, please define the main method as:public static void main(String args)or a JavaFX application class must extend javafx.application.Application
- String args: Javaのコマンドライン引数を格納するもので、java.lang.String型の配列です。lang.Stringクラスの配列です。 ここでは、文字列配列の名前をargsとしていますが、これは固定ではなく、ユーザーが任意の名前を使用することができます。
classGeeksforGeeks {publicstaticvoidmain(String args){for(String elem : args)System.out.println(elem);}}123
上記のmainのシグネチャーとは別に、public static void main(
123
)を使うこともできます。 javaのmain関数を呼び出すには、public static void main(String args) や public static void main(String… args) を使うことができます。
mainメソッドはint型にできますか? できない場合、その理由は?
classGeeksforGeeks {publicstaticintmain(String args) {System.out.println("GeeksforGeeks");iv
}}Javaは暗黙のうちにintを返しません。
Javaは暗黙的にintを返しません。
コンパイル時にエラーが出てしまいますprg1.java:6:error: missing return statement
}
^
1エラー。
classGeeksforGeeks {です。publicstaticintmain(String args) {divSystem.out.println("GeeksforGeeks");return0;iv
}}さて。 0や整数を明示的に返したとしても
Error:
public static void main(String args)説明 –
mainからintを返すCやC++のプログラムは、OSのプロセスです。 CやC++のmainから返されるint値は、終了コードまたは終了ステータスです。 CやC++のプログラムの終了コードは、プログラムがなぜ終了したのかを示します。 終了コード0は正常終了を意味します。 しかし、終了コードが 0 以外の場合はエラーを意味します。子プロセスの親プロセスは、子プロセスの終了ステータスを待ち続けます。
子プロセスの親プロセスは、子プロセスの終了ステータスを待ち続け、子プロセスの終了ステータスを受け取った後、プロセステーブルから子プロセスを削除し、子プロセスに割り当てられたリソースを解放します。
しかしながら、JavaプログラムはJVMの中で「メインスレッド」として動作しています。
しかしながら、JavaプログラムはJVM内の「メインスレッド」として実行されており、OSのプロセスですらありません。 Javaプログラムとオペレーティング・システムの間には、直接的な相互作用はありません。 Javaプログラムに直接リソースが割り当てられることはありませんし、Javaプログラムはプロセステーブルのどの場所も占めていません。 では、誰に終了ステータスを返すのでしょうか。
しかし、JVMはOSのプロセスであり、JVMは特定の終了ステータスで終了させることができます。 java.lang.Runtime.exit(int status)やSystem.exit(int status)の助けを借りて
Article Tags :Java練習用タグ : - main: Javaのmainメソッドの名前です。 JVMがJavaプログラムの開始点として探す識別子です。 キーワードではありません。