Насколько я знаю, для методов с Varargs
java создаст временный массив и отправит его методу.так с этой реализацией метода:
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
, которая создает новый ArrayList
и конструктор ArrayList
:
private final E[] a;
ArrayList(E[] array) {
a = Objects.requireNonNull(array);
}
, поэтому новый ArrayList содержит ссылку на объекты списка или Varargs
отправлено методу.
Я думаю, что нет никакой разницы между массивом и Varargs
.для Varargs
компилятор создаст временный массив, и во время выполнения нет большой разницы.
Однако всегда между JVM есть разница, о которой вы должны прочитать, но я не думаю, что есть разница между Varargs
и обычный массив.