mainメソッドのシグネチャを構成する各要素には、明確な技術的理由が存在します。
- public:JVMという外部のプロセスから制限なくアクセスして呼び出せるようにするため。
- static:JVMがクラスのインスタンスを生成(new)することなく、クラスロード後すぐに直接呼び出せるようにするため。
- void:メソッド終了時にJVMへ返却する戻り値が存在しないことを示すため(プロセス終了コードはSystem.exit等で制御)。
- main:JVMが探索する定義済みのメソッド名。
- String[] args:起動時にコマンドラインから渡される文字列引数の配列(可変長引数 String... args も有効)。
なお、修飾子である public と static の位置は入れ替えて「static public void main(String[] args)」と記述しても文法上完全に有効です。