Javaの省略記号の実装が舞台裏でヒープの割り当てを含むかどうかを実際に知っている親切な魂がどこかにいますか。呼び出し元のメソッドがスタック上で必要なことを行い、配列/ヒープの割り当てを完全に回避することは私には合理的だと思われますが、Java に関して言えば、私は数え切れないほど間違っていることが証明されています。誰かが実際に確かに知っているなら、私は答えに最も感謝します.
1 に答える
2
はい、実際に配列を作成しています。場合によっては、JVM が巧妙なことをして、配列が実際には「エスケープ」できず、実際にスタック上に作成できることに気付く可能性がありますが、それは単に構文上の varargs 構文とは関係ありません。シュガー。
一般に、他の配列作成と同じように扱う必要があります。したがって、この:
public void foo(int... args)
// Code
foo(1, 2, 3);
は次とまったく同じです:
public void foo(int[] args)
// Code
foo(new int[] { 1, 2, 3 });
于 2013-08-12T19:25:11.930 に答える