public class Test { public static void main(String[] args)
{
MethTool.sum(2,3,45,5,6,342,324);
System.out.println();
}
}class MethTool
{
static int sum(int... nums)
{
int result=0;
for(int i:nums)
{
result+=i;
}
return result;
}
}我想知道int... nums这个是怎么实现的,在jvm里是怎么样的一个动作?

解决方案 »

  1.   

    jvm会把执行期的参数,放到一个int[]类型的nums里面,就是说nums是一个int[]类型的变量!
    你甚至可以理解把
    sum(i, j, k);
    为:
    sum(new int[]{i, j, k});
      

  2.   

    噢,这样啊。。明白了!呵呵,谢谢楼上的zqrqq,我看了,两种方法连字节码都一样的。我习惯把解决了的帖子放上一周左右再结帖的,这样有些东西大家可以分享。   :)
      

  3.   

    to qq7338367
    有兴趣的话,可以这个帖子提交成FAQ,让大家都能看到