В чем разница между
1.List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(ia));  //copy
2.List<Integer> list2 = Arrays.asList(ia);
 где ia это массив целых чисел.
 Я узнал, что некоторые операции запрещены в list2. почему это так? как он хранится в памяти (ссылки/копии)?
 Когда я тасую списки, list1 не влияет на исходный массив, но list2 влияет. Но все же list2 несколько сбивает с толку.
 Чем ArrayList преобразуется в список, отличается от создания нового ArrayList
list1 differs from (1)
ArrayList<Integer> list1 = new ArrayList<Integer>(Arrays.asList(ia));
