この記事では、Java での main() メソッドの使用方法について説明します。必要な方は参考にしていただければ幸いです。
Java プログラムのエントリ ポイント --- main() メソッドのシグネチャは次のとおりです: public static void main(String[] args) {...}、ここで、
public 修飾子: JVM がメインを自由に呼び出せるようにするために、Java クラスが JVM によって呼び出されます。 () メソッドでは、public 修飾子が使用されます。このメソッドを公開します。
static 修飾子: JVM がこのメイン メソッドを呼び出すとき、最初にメイン クラスは作成されません。オブジェクトを作成し、そのオブジェクトを通じて main メソッドを呼び出します。 JVM はこのクラスを通じて main メソッドを直接呼び出すため、static を使用して main メソッドを変更します。
void return value
: main メソッドは JVM によって呼び出されるため、このメソッドの戻り値は JVM に返されます。 JVM では意味がありません。そのため、main() メソッドには戻り値がありません。上記のメソッドには、メソッド呼び出しの規則に従って、文字列配列の仮パラメータ String[] args も含まれています。メソッドを呼び出す人は値を割り当てる責任があります。仮パラメータに。つまり、main() メソッドは JVM によって呼び出されます。つまり、args パラメーターは JVM によって割り当てられる必要があります。しかし、JVM は args 配列に値を割り当てることをどのようにして知るのでしょうか?まず次のプログラムを見てみましょう:
public class ArgsTest{ public static void main(String[] args){ //输出args数组的长度 System.out.println(args.length); //遍历args数组的每一个元素 for(String arg : args){ System.out.println(arg); } } }
上記のプログラムは最も単純な「hello world」プログラムですが、これはプログラムの追加 args 配列の長さと、arg 配列の要素を走査するためのコードを出力します。 Java ArgsTest コマンドを使用して上記のプログラムを実行すると、プログラムが 0 のみを出力することを確認します。これは、args 値が長さ 0 の配列であることを示します。コンピューターには思考能力がなく、ユーザーとの対話を忠実に実行することしかできないため、これは合理的です。タスクを考慮すると、プログラムは args 配列のパラメーター値を設定しないため、JVM は args 配列の要素を認識せず、そのため、JVM は args 配列を長さ 0 の配列に設定します。
#コマンドを変更して上記のプログラムを実行します:java ArgsTest Java Spring
#
2 Java SpringJava プログラムの実行時にクラス名の後に 1 つ以上の文字列 (スペースで区切られた複数の文字列) が続く場合、JVM には文字列が割り当てられると結論付けることができます。 args 配列要素を 1 回。 Java プログラムを実行するときのパラメーターと args 配列の関係は、最初のパラメーターは最初の配列要素に対応し、2 番目のパラメーターは 2 番目の配列要素に対応し、...というようになります。
パラメータ自体にスペースが含まれる場合は、パラメータを二重引用符「"」で囲む必要があります。そうしないと、JVM はスペースをパラメータ自体ではなくパラメータ区切り文字として扱います。たとえば、次のコマンドを使用して上記のプログラムを実行します。
java ArgsTest "Java Spring"args の長さが 1 で、配列要素が 1 つだけあり、その値が Java Spring であることがわかります。
#質問: main() メソッドが実行される前に「hello world」を出力するにはどうすればよいですか?
ご存知のとおり、Java 言語では、main() メソッドはプログラムの実行時のエントリ メソッドです。 ) メソッドが最初にロードされますが、これは、プログラムの実行時に main() メソッドが最初に実行されるモジュールであることを意味しますか?
#答えは否定的です。 Java言語ではクラスロード時にstaticブロックが呼び出されるため、main()メソッドの実行前に「hello world」を出力する機能をstaticブロックを利用して実現できます。
public class Test{ static{ System.out.println("hello world"); } public static void main(String[] args){ System.out.println("hello my world"); } }
プログラムの実行結果は次のとおりです:
hello world hello my world
静的なため、順序に関係なく、コード ブロックは main() メソッドが実行される前に実行されるため、次のコードは上記のコードと同じ出力になります。 ########################
以上がJava での main() メソッドの使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。