Arrays.asList 返回值类型

java高并发梳理

public static void main(String[] args) {
        Integer[] datas = {1,2,3,4,5};
        List<Integer> list = Arrays.asList(datas);
        list.add(5);
        System.out.println(list.size());
    }

该代码会报错    java.lang.UnsupportedOperationException  ---不支持的操作

那么为什么不支持呢,先看API

Arrays.asList 返回值类型

我们为什么会删除不了集群的 Namespace?

再看源码就能很明白问题的所在了

@SafeVarargs
    @SuppressWarnings("varargs")
    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a); 
    }

注意!这个返回的ArrayList可不是我们平时用的,而是Arrays的一个内部类

private static class ArrayList<E> extends AbstractList<E>
        implements RandomAccess, java.io.Serializable{
/。。。。。。。。。
}

而这个类实现了Serializable接口,这就说明他是可序列化的,正如String一样,不可做更改

看完这篇HTTP,跟面试官扯皮就没问题了

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享