实际上这里面的ArrayList并不是“真正的”ArrayList ,而是Arrays类的一个内部list实现类,也就是说asList方法返回的是一个在工具类内部定义的迷你版List实现。
这个类继承自AbtractList ,没有自己的add()方法,所以示例中的 list.add("ddd") 调用的是 AbtractList 的 add() 由源码可知调用这个迷你版ArrayList的add方法时会抛出 UnsupportedOperationException 。至此,运行示例代码出错也就可以理解了。