I know that list2.addAll(list1) allows us to append additional objects to list2 from list1 if list2 already had some objects before calling this method
But I don't append anything and I want to know the difference of the next case
Would be there any difference when making a copy of a list using next methods
For example I have a list of some objects (list1) and I want to make a copy of it, copy its content to another list (to a new list - list2)
List<Foo> list1 = new ArrayList<>();
list1.add(new Foo());
...
Method 1
List<Foo> list2 = new ArrayList<>(list1);
Method 2
List<Foo> list2 = new ArrayList<>();
list2.addAll(list1);
Update
Actually even IntelliJ IDEA suggests me to convert method 2 to method 1:

addAllalso does some size checks (whether to enlarge the underlying array etc).