优化包括:I/O的优化、网络操作的优化、内存的优化、数据结构的优化、代码层次的优化、UI渲染优化、CPU资源使用率的优化、异常处理的优化等

》ArrayList和Vector

ArrayList和Vector都是内部以数组实现的List,它们两唯一的区别就是对多线程的支持,ArrayList是线程不安全的,而Vector内部对大多数方法都做了同步,是线程安全的,既然是线程安全的,所以性能方面肯定不如ArrayList了(当然想法肯定是对的),不过这需要看哪方面了,ArrayList在add、get、remove等操作效率肯定是高于Vector的,而在内存方面,Vector却比ArrayList表现的更好,这归根都是ArrayList的扩容策略导致的

List集合的遍历方式,有三种:foreach、iterator、for。

》三种方式测试遍历有100w条数据的ArrayList集合:

fori花费30;foreach花费:105;iterator花费:95

而通常我们所说的效率高的foreach在遍历上却显得不如意,而fori效率表现的最好,这是因为ArrayList和Vector集合内部实现由数组实现,所以随机访问的速度是很快的,对于可以进行随机访问的List,JDK为它们实现了RandomAccess接口,表示支持快速随机访问。

》而在遍历有1w条数据的LinkedList集合时:

fori花费:351

foreach花费:2

iterator花费:4

则foreach表现最佳,所以对数组、或者实现了RandomAccess接口的List,遍历用fori性能最佳,对LinkedList等以链表实现的集合遍历时使用foreach或者iterator性能最佳,因为foreach的实现就是通过iterator实现的。

。ArrayList内部的扩容策略是当其所存储的元素数量超过它已有的大小时,它就会以1.5倍的容量进行扩容;

。在众多Map集合中也有各自扩容策略,比如HashMap每次扩容时新容量等于原始的容量*2。在我们常用做字符串拼接的StringBuffer和StringBuilder内部,实际上也是有扩容策略,默认为扩容为原始的1.5倍。

》优先考虑系统中提供的代码而不是自己写

系统内置了许多非常方便的api供我们使用,比如:System、Arrays、Collections、String等内置了许多方法api,这比我们自己手写方便多了,除了这个外,对于Android来说许多api都使用了底层C/C++实现,所以效率上也比我们自己写快,同样,对于系统api,DVM往往也会使用内联的方式提高效率。

》慎用异常

慎用异常并不是不用异常,而是指程序中用抛异常的方式来执行某些操作,比如有些人会以强抛异常方式来中断某些操作等。因为抛异常时都会执行fillInStackTrace();方法,该方法作用就是重新调整堆栈,这使得没有必要用异常的地方一定要避免使用

》如果一个方法不需要使用该对象的成员,那么把该方法设为static;巧用final关键字

android集合优化,android-性能优化之集合类优化相关推荐

  1. 如何更改计算机性能,如何修改注册表优化电脑性能 修改注册表优化电脑性能方法...

    注册表相信电脑爱好者都不会陌生,通过 修改注册表可以实现优化各种电脑技能 ,在电脑安全设置,系统稳定性方面起着很重要的作用,但由于注册均为表值,因此很多电脑爱好者对于注册表都不赶去触及,害怕因此而影响 ...

  2. 注册表计算机性能设置怎么应用,如何修改注册表优化电脑性能 修改注册表优化电脑性能方法...

    注册表相信电脑爱好者都不会陌生,通过 修改注册表可以实现优化各种电脑技能 ,在电脑安全设置,系统稳定性方面起着很重要的作用,但由于注册均为表值,因此很多电脑爱好者对于注册表都不赶去触及,害怕因此而影响 ...

  3. android集合方法,android中intent传递list或者对象的方法

    本文实例讲述了android中intent传递list或者对象的方法.分享给大家供大家参考.具体实现方法如下: 方法一: 如果单纯的传递List 或者List的话 就可以直接使用 代码如下: inte ...

  4. Android:最全面详细的性能优化攻略(含内存优化、内存泄漏、绘制优化、布局优化、图片优化、APK优化、多线程优化、列表优化等)

    前言:佛教中有一句话:初学者的心态,拥有初学者心态是件了不起的事情.真正的大师永远怀有一颗学徒的心. 一.概述 在Android中,性能优化是细分领域中最难且也是知识面涉及最深和最广的方向之一. 更快 ...

  5. Android 进阶第二篇——性能优化

    Android 进阶第二篇--性能优化 一些Android书籍喜欢把性能优化放在最后的章节,简单提一提作为内容全面的点缀.在这里我将工具使用和性能优化的一些个人经验放在进阶系列博客的开始,因为我认为防 ...

  6. Android面试汇总-Android内存和性能优化面试

    一.app优化 app优化:(工具:Hierarchy Viewer 分析布局 工具:TraceView 测试分析耗时的) App启动优化 布局优化 响应优化 内存优化 电池使用优化 网络优化 App ...

  7. Android开发之Android性能优化记录

    Android 性能优化 Android 中的性能优化在我看来分为以下几个方面:内存优化.布局优化.网络优化.安装包优化: 内存优化: 下一个问题就是: 布局优化: 布局优化的本质就是减少 View ...

  8. android系统功耗优化(2)---Android最佳实践之性能 - 电池续航时间优化

    Android最佳实践之性能 - 电池续航时间优化 Doze和App Standby的优化(API23) 参考地址:http://developer.android.com/training/moni ...

  9. Android 性能优化---(8)APP启动时间优化指南

    本文可以帮助你优化应用的启动时间:首先描述应用启动过程的内部机制:然后讨论如何分析启动性能:最后,列举了一些常见的影响启动时间的问题,并就如何解决这些问题给出一些提示. 第 1 部分:启动过程内部机制 ...

最新文章

  1. C#实现汉字转化为拼音
  2. Java Web之文件的上传及下载
  3. 计算机桌面反应慢,Windows7电脑反应慢的解决方法
  4. (原创)一个和c#中LazyT类似的c++ LazyT类的实现
  5. 任正非:要提高待遇,敢于和美国争夺人才
  6. 转发文章最多的朋友可以免费进入价值99元的《湾区AI精英会》海归圈子
  7. Error: A JNI error has occurred, please check your installation and try again
  8. Android系统的手表adb抓取log日志
  9. 同一路由器下两台电脑ping不通_复杂网络环境下路由器配置问题导致业务故障处理案例分享...
  10. jboss eap6.1(4)(部署应用)
  11. android sleep_android实现下拉刷新动画水滴效果
  12. 【java学习之路】(java SE篇)(练习)3个经典小问题
  13. scala泛型上边界_Scala类型边界:上边界,下边界和视图边界
  14. vue的视图化创建项目_vuecli 创建项目的方法,以及图像化操作【23】
  15. sqlyog和mysql一样么_navicat和sqlyog的区别
  16. JZOJ6734. 【2020.06.18省选模拟】航行
  17. 浅析欢乐时光(HAPPY TIME)病毒
  18. 映射、单射、满射、双射
  19. 城域网IPv6过渡技术——MAP技术
  20. 华为 1+X《网络系统建设与运维(中级)》认 证实验模拟上机试题

热门文章

  1. 前端学习(733):函数的参数
  2. 前端学习(593):使用devtools作为代码编辑器
  3. java学习(166):socket服务端和客户端连接
  4. java python 运行 内存_Python C Java中字符串在内存中的存储
  5. CSS之两栏固定布局(一)
  6. 每日一学:如何转换png图片为jpg图片
  7. 卷积神经网络(CNN)介绍
  8. hiveserver2 mysql_HiveServer2的配置使用
  9. from 下拉框多个值提交_Git提交规范
  10. 文件下载时,文件名乱码问题