0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Javaのmainメソッドを初心者向けに解説|String[] argsはなぜ必要?

0
Posted at

はじめに

ChatGPT Image 2026年6月17日 22_56_27.png

Javaの学習を始めると、最初にこんなコードを見ます。

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

しかし初心者の頃の私は、

  • publicって何?
  • staticって何?
  • String[] argsって何?
  • そもそもなぜ毎回書くの?

という状態でした。

今回は、Java学習で必ず登場する

public static void main(String[] args)

について、初心者向けに整理してみます。


mainメソッドとは?

mainメソッドはJavaプログラムのスタート地点です。

Javaプログラムを実行すると、

JVM(Java Virtual Machine)は

public static void main(String[] args)

を探します。

そして見つけると、

そこから処理を開始します。

イメージとしては、

家の玄関

のようなものです。

どんな立派な家でも玄関がなければ入れません。

Javaプログラムも同じで、

mainメソッドが入口になります。


なぜこの形で書くの?

Javaでは、

public static void main(String[] args)

という形が決められています。

JVMはこの形を探して実行します。

例えば次のように書くと、

public static void start(String[] args)

JVMは見つけられません。

そのためプログラムを実行できません。


1つずつ意味を見てみよう!

初心者の頃は呪文のように見えますが、

実はそれぞれ意味があります。


public

public

どこからでも呼び出せる

という意味です。

JVMがmainメソッドを呼び出すため、

アクセスできる必要があります。


static

static

オブジェクトを作らなくても呼び出せる

という意味です。

JVMはプログラム開始時に

new Hello();

のような処理を行いません。

そのため、

インスタンス生成なしで実行できる

static が必要になります。


void

void

戻り値なし

という意味です。

mainメソッドは

何かを返す必要がありません。


main

main

メソッド名です。

JVMは

main

という名前を探します。

別の名前にすると認識されません。


String[] args

String[] args

文字列の配列

です。

プログラム実行時に渡された値が入ります。


String[] args は何に使うの?

例えば次のように実行します。

java Hello Tokyo Osaka Kyoto

すると

args[0]

には

Tokyo

が入ります。


args[1]

には

Osaka

args[2]

には

Kyoto

が入ります。

実際に表示してみましょう。

public class Hello {
    public static void main(String[] args) {

        for (String arg : args) {
            System.out.println(arg);
        }

    }
}

実行

java Hello Tokyo Osaka Kyoto

結果

Tokyo
Osaka
Kyoto

String[] args と String args[] の違い

実は次の2つは同じです。

String[] args
String args[]

どちらも

文字列配列

を表しています。

そのため、

どちらでもmainメソッドとして動きます。

ただし

String[] args

の方が一般的です。


String... args とは?

時々こんな書き方を見ます。

public static void main(String... args)

これは

可変長引数(varargs)

と呼ばれます。

難しく見えますが、

mainメソッドの場合は

String[] args

とほぼ同じです。

例えば次のコード。

public static void main(String... args) {

    System.out.println(args.length);

}

実行

java Hello A B C

結果

3

内部的には配列として扱われています。


逆にこれはNG

次のコードは動きません。

public static void main(String args)

理由は簡単です。

JVMは

String[]

または

String...

を探しているからです。

これは単なる

String

なので、

入口として認識されません。


どの書き方を覚えればいい?

まずはこれだけ覚えれば十分です。

public static void main(String[] args)

実務でも学習教材でも、

ほぼこの形が使われています。


まとめ

今回のポイントを整理します。

  • mainメソッドはJavaプログラムの入口
  • JVMはpublic static void main(String[] args)を探して実行する
  • String[] argsはコマンドライン引数を受け取るための配列
  • String args[]でも動く
  • String... argsも動く
  • String argsは動かない

私自身、Java学習を始めた頃は

public static void main(String[] args)

をただの呪文のように書いていました。

しかし、

「Javaプログラムの入口」

という考え方が分かると、一気に理解しやすくなりました。

まずは

public static void main(String[] args)

を「Javaの玄関」として覚えておくとよいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?