public 
class TestVarArgus {  
?    public static void dealArray(int... intArray){  
?        for (int i : intArray)  
?            System.out.print(i +" ");  
?          
?        System.out.println();  
?    }  
?      
?    public static void main(String args[]){  
?        dealArray();  
?        dealArray(1);  
?        dealArray(1, 2, 3);  
?    }  
?}  
可以看出来这个可变参数既可以是没有参数(空参数),也可以是不定长的。看到这里估计都能明白,这个不定长的参数其实和数组参数挺像的。事实上,也确实是这么回事儿。编译器会在悄悄地把这最后一个形参转化为一个数组形参,并在编译出的class文件里作上一个记号,表明这是个实参个数可变的方法。请看代码:
dealArray(); //dealArray(int[] intArray{});  
?        dealArray(1); //dealArray(int[] intArray{1});  
?        dealArray(1, 2, 3); //dealArray(int[] intArray{1, 2, 3});  
转:https://blog.csdn.net/testcs_dn/article/details/38920323