很明顯 new ArrayList()是創建一個Collection實例,它是Collection集合下面的一個實現類(中間繼承了AbstractList),它的實例有Collection的增加,刪除,修改等方法,
ArrayList平常用的很多,這里就不過多說明,主要說一下Collections.emptyList()。首先看一下源碼:
emptyList()方法返回的是Collections的一個成員屬性EMPTY_LIST,再看一下EMPTY_LIST:
可以看出Collections.emptyList()方法最終調用的是Collections的一個靜態內部類EmptyList的構造方法實例化一個EmptyList對象,然后再看一下EmptyList這個類:
可以看出它並沒有Collection集合的那些增加,修改刪除方法。如果用它來創建的list來進行增加修改等操作會出現異常。