很明显 new ArrayList()是创建一个Collection实例,它是Collection集合下面的一个实现类(中间继承了AbstractList),它的实例有Collection的增加,删除,修改等方法,
ArrayList平常用的很多,这里就不过多说明,主要说一下Collections.emptyList()。首先看一下源码:
emptyList()方法返回的是Collections的一个成员属性EMPTY_LIST,再看一下EMPTY_LIST:
可以看出Collections.emptyList()方法最终调用的是Collections的一个静态内部类EmptyList的构造方法实例化一个EmptyList对象,然后再看一下EmptyList这个类:
可以看出它并没有Collection集合的那些增加,修改删除方法。如果用它来创建的list来进行增加修改等操作会出现异常。