mainメソッド
読み:メインメソッド
外語:main method

 Javaで作成されたアプリケーションを起動するさい、最初に呼び出されるメソッド。メインルーチンを記述する場所。
目次

概要
 mainメソッドには、次のような決まりごとがある。
 一般的には、次のように記述される。
 public static void main(String[] args) { }
 ただ、publicとstaticは逆に書いても同義であり、また変数名argsは慣例に過ぎず実際には何でも良い。

特徴

引数
 引数は文字列の配列として与えられる。
 変数名をargsとすると、要素数はlengthメソッドで得られる。つまり「args.length」である。
 また文字列は、1番目はargs[0]、2番目はargs[1]、のようにして得る。

必須ではない
 javaコマンドはmainメソッドを実行しようとするが、Javaのクラスローディング仕様上はmainメソッドは必須ではない。
 常識的なプログラムではmainメソッドを書くので、このようなことは考える必要自体通常はないが、mainメソッドがなくてもコンパイルすることができ、技巧さえ凝らせばmainメソッドが無くてもプログラムは動く。
 あるクラスが起動されるさいには、クラスのmainメソッドが探される。メソッドを探すためには、まずクラスのローディングが行なわれるが、このときstaticイニシャライザーがあれば、それが(mainメソッドの有無を問わず)実行される。
 そしてstaticイニシャライザー内で新しいスレッドを作成し、そのスレッドから任意のメソッドを呼べば、mainメソッドが無くてもクラスは実行されるということになる。
 通常、mainメソッドが無ければ、JVMはNoSuchMethodException例外をスローする。結果、メインのスレッドはNoSuchMethodExceptionで終了してしまうが、終了する前に非デーモンスレッドを作成してしまえば、それが動作し続けるのである。

再検索