为什么更改列表创建数组时会修改列表

Vla*_*nko 5 java collections

import java.util.*;

public class Test {
    public static void main(String[] args) {
        String[] arr = {"Java", "Champ", "."};
        List<String> list = (List<String>) Arrays.asList(arr); // line 1
        arr[2] = ".com"; // line 2
        for (String word : list) {
            System.out.print(word);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

能否请人解释一下为什么我们来到“ JavaChamp.com”?我认为应该只是“ JavaChamp”。因为第二行在第一行之后

Ani*_*wat 8

因为Arrays#asList返回List数组支持的固定大小。

这是文档Arrays#asList

返回由指定数组支持的固定大小的列表。(将返回的列表更改为“直写”到数组。)与结合使用,此方法充当基于数组的API和基于集合的API之间的桥梁Collection.toArray()。返回的列表可序列化并实现RandomAccess