摘要: .net提供了List对象来提供可扩容数据存储,但在使用的过程中相信很多人直接通过默认构造函数进行创建。但这样做会存在一定的风险导致Lis在扩容过程增加CPU的损耗和GC的压力,对于问题的严重性就取决于实际应用的场合,如果在高并发的应用下存在大量这操作那问题就变得严重多了。 首先需要了解一下List的存储机制,在初始化的时候不指定大小的情况是默认分配大小为4的数组,当在添加信息超过该值的情况会进行一个倍分扩容,默认的规则是4,8,16,32...;扩展容的过程中是会构建扩展后大小的数组,并把旧的数据复制过去。ArrayList和List<T>实际的代码大概如下:public vi. 阅读全文
posted @ 2012-08-29 13:14 beetlex 阅读(3823) 评论(6) 推荐(3) 编辑