1. 가변인수(varargs)

public class Test {
		
		public static int sum(int... args) {
				int sum = 0;
				
				for(int argument : args) {
						sum += argument;
				}
				
				return sum;
		}
}

2. 최소 1개의 인자를 받아야 하는 가변인수

public class Test {
		public static int min(int... args) {
				if(args.length == 0) {
						throw new IllegalArgumentException("인수가 1개 이상 필요합니다.");
				}
				
				int min = args[0];
				
				for(int argument : args) {
						min = Math.min(argument, min);
				}
				
				return min;
		}
}
public static int min(int first, int... args) {
		int min = first;
		
		for(int argument : args) {
				min = Math.min(min, argument);
		}
		
		return min;
}

3. 가변인수와 성능

public void foo(){}
public void foo(int arg1){}
public void foo(int arg1, int arg2){}
public void foo(int arg1, int arg2, int arg3){}
public void foo(int arg1, int arg2, int arg3, int... restArgs){}