はどのように実装されていますかpublic static void main(String args[])
? String args[]
として実装されていvarargs
ますか?
渡された引数の数のみを与えるため、これを求めています。args.length
つまり、のようにどこにも定義されていませんString args[] = new String[30]
。この配列はどのように実装されていますか?
はどのように実装されていますかpublic static void main(String args[])
? String args[]
として実装されていvarargs
ますか?
渡された引数の数のみを与えるため、これを求めています。args.length
つまり、のようにどこにも定義されていませんString args[] = new String[30]
。この配列はどのように実装されていますか?
文字列の配列として、見た目どおりに実装されています。一方、Varargs は配列として実装されString...
ますString[]
。
それは宣言されています(実装されていません)が、宣言されていると言います。可変引数を使用して関数を宣言することは完全に合法です。
public static void main(String... argv)
コンパイラは varargs 宣言を受け取り、それをString[]
バイトコードに変換します。これは、varargs を使用するすべての関数で発生します。
JVM がプログラムの実行を開始すると、コマンドライン引数の数とまったく同じ長さの配列が作成されます ( -D
JVM 自体を対象としたそのような引数は除きます)。次に、指定されたクラスでメイン関数を検索して呼び出します。
これは、開始時にプロセスに渡された引数の値で初期化される単なる文字列の配列です。可変引数リストではありません。