mainメソッドの引数って何?

Javaプログラミングの学習を始める際に決まって最初に登場するメソッドは

public static void main (String[] args) {

ですが、これには文字型配列の引数  String[] args が入っていますよね。
これが何で必要なのか疑問に思ったことはありませんか?
Javaプログラミングの学習を進めていくと、通常のメソッドの仮引数に入る値は、呼び出し元のメソッドが指定した実引数ということがわかってきますが、mainメソッドは最初に動くので、呼び出し元のメソッドがありません。じゃあ、何が値を指定するのでしょうか?答えはプログラムを起動する時に引数を指定することができます。
これをコマンドライン引数といいます。

コマンドライン引数を使用したJavaプログラム起動の構文は以下の通りです。
java プログラム名 引数リスト

引数リストは()で囲まずに半角スペースで区切って入力します。
プログラム起動時に指定したコマンドライン引数が、JVMにより配列に変換されて、mainメソッドに渡されます。