ArrayList——内存开销,时间上的开销

转载 2016年08月31日 11:07:57

ArrayList的内部存储的原理是数组,Object[]数组,默认长度为10,若是超过10,则自动扩容,规则是((旧容量*3)/2)+1

一、内存开销

若是存储利用ArrayList存储2个Object,会创建10存储空间,则会浪费8存储空间

若是存储利用ArrayList存储11个Object,会创建16存储空间,则会浪费5存储空间

若是存储利用ArrayList存储17个Object,会创建25存储空间,则会浪费8存储空间

若是存储利用ArrayList存储26个Object,会创建38存储空间,则会浪费12存储空间


以此类推,若是在项目中创建很多的ArrayList,岂不是浪费很多的存储空间



二、时间开销

如果数据量很大,那么造成数组重新分配的次数会增加,但对于一般的数据量下,

1千需要分配 11次

1万一级需要分配17次

10万 需要分配23次

100万需要分配28次





相关文章推荐

ArrayList内存分配

ArrayList就是动态数组,也是一个对象。 创建一个ArrayList对象,该对象存放在堆内存中,且是一个内存连续的内存区域。...

关于ArrayList的初始容量以及扩容的效率问题

论坛的一个问题:有这样一段很简单的代码: ArrayList a = new ArrayList (); a.addAll(b); a.addAll(c); 其中DataVO是一个实...

HQL或SQL使用?带来的好处:减少SQL解析时间、降低内存开销、防止SQL注入

以前都我们熟知使用“?”表达式的好处可以减少数据库解析SQL的时间,提高SQL执行效率。然而我们却忽略了,这样做还可以减少数据库和HQL缓存SQL解析计划而使用的内存。所以建议DAO层的代码,都使用预...

Avoiding Image Decompression Sickness如何避免图像解压缩的时间开销

转自:http://longtimenoc.com/archives/ios%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E5%9B%BE%E5%83%8F%E8%A7%A...
  • theonezh
  • theonezh
  • 2012年06月26日 09:33
  • 17899

iOS如何避免图像解压缩的时间开销

当开始iCatalog.framework的工作时,我发现使用大尺寸图片会引起一些恼人的问题,“大”意味着这个图片有足够大的分辨率(1024×768)来覆盖iPad的整个屏幕,或者覆盖未来Retina...

系统调用之时间开销

ps:写了很长时间,所以转载请著名作者(lancegentry) !!!还有这句话!!!         再ps一个:转载注明本空间地址呀!!!http://blog.csdn.net/lanceg...

iOS—如何避免图像解压缩的时间开销

这是一篇译文,(原文"Avoiding Image Decompression Sickness"在此),原文是我看过的非常不错的一篇关于iOS图片显示的一些文章,解决了我的一些疑惑和问题,因此翻译过...
  • pjk1129
  • pjk1129
  • 2015年04月29日 15:01
  • 1373

iOS中如何避免图像解压缩的时间开销

原文地址:http://www.cocoanetics.com/2011/10/avoiding-image-decompression-sickness/ 名词: Alpha Channel(阿...

如何避免图像解压缩的时间开销

原文自:http://www.cocoachina.com/applenews/devnews/2013/0723/6660.html 原文是我看过的非常不错的一篇关于iOS图片显示的一些文章,解决...
  • chowpan
  • chowpan
  • 2013年07月24日 14:19
  • 663

【1】Thread基础:从windbg角度理解时间和空间开销

0.thread本身来说就是操作系统的概念   1.空间开销 1)thread的内核结构,其中有osid,context=》cpu寄存器的里面的一些变量   2)thread环境块 Tls...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ArrayList——内存开销,时间上的开销
举报原因:
原因补充:

(最多只允许输入30个字)