ホームページ >Java >&#&チュートリアル >Java での main() メソッドの使用法の概要

Java での main() メソッドの使用法の概要

不言
不言転載
2019-02-23 16:52:023723ブラウズ

この記事では、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
Spring
Java プログラムの実行時にクラス名の後に 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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。