在tomcat中有很多这样的代码 :Connector results[] = new Connector[connectors.length + 1];System.arraycopy(connectors, 0, results, 0, connectors.length);results[connectors.length] = connector;connectors = results;数组拷贝并把新的数组赋给当前的数组,从而间接实现了动态数组。之所以使用数组我想可能是出于性能的考虑吧!怎么理解上面的是出于性能的考虑,下面是我自己的一些思考。这个性能应该是从空间占用上去考虑,因为Tomcat没有一开始就分配一个固定大小的数组,而是采用这种动态数组的实现。需要的时候在去分配,最大程度上利用空间。从实现方便的角度也可以使用List实现,List本质也是数组,如果使用List的ArrayList 的话,默认空间大小为10!可以看ArrayList的源码!/*** Default initial capacity. (JDK1.7)*/private static final int DEFAULT_CAPACITY = 10;那么这样如果没有任何元素添加,也会占用这么长的空间,内存使用率下降,则性能就会降低!