已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android高效编程指南 2010年03月 两个基本的原则 不要做不必要做的事情尽可能的节省内存的使用 尽可能避免创建对象1 AvoidCreatingObjects 越少的对象创建意味着越少的垃圾回收 这会提高你程序的用户体验质量 例子 尽量少创建没用的临时变量 尽可能避免创建对象2 AvoidCreatingObjects 尽量使用一维数组代替多维数组 将多维数组分割成几个平行的一维数组 如 两个平行的Foo 和Bar 要比一个 Foo Bar 对象数组的效率高得多 使用原生方法 UseNativeMethods 尽量使用对象自身带有的接口方法 因为这些方法有些是使用C编写的 比自己用Java编写的效率高 如String indexOf String lastIndexOf 使用实现优于使用接口 PreferVirtualOverInterface 1 MapmyMap1 newHashMap 常规编程2 HashMapmyMap2 newHashMap 嵌入式编程接口方法的调用比实现类方法的调用会花费2倍以上的时间 多使用接口的具体实现类 使用静态优于使用虚拟 PreferStaticOverVirtual 给方法加上static 如果你没有必要去访问实例 对象 的变量 那么使你的方法成为静态方法 它会被更快的调用 因为它不需要一个虚拟函数导向表 给属性加上static 如果您的变量不需要被每个实例 对象 分享 那么使你的属性成为静态属性 它会被更快的调用 因为JVM只为静态分配一次内存 而非静态变量 每创建一个实例时 JVM就为非静态变量分配一次内存 内在避免使用Get Set方法 AvoidInternalGetters Setters 外部调用时使用Get和Set函数 但是在内部调用时 我们应该直接调用 虚方法的调用比实例属性查询的代价还要多 缓冲对象属性调用 CacheFieldLookups 访问对象属性要比访问本地变量慢得多 不要这样写 for inti 0 i this mCount i dumpItem this mItems i 应该这样写 intcount this mCount Item items this mItems for inti 0 i count i dumpItems items i 声明Final常量 DeclareConstantsFinal staticintintVal 42 staticStringstrVal Hello world 当类被创建时 编译器会调用一个类初始化方法 这个方法会对intVal和strVal进行初始化处理 可以写成如下 staticfinalintintVal 42 staticfinalStringstrVal Hello world 初始化是由虚拟机来处理的 所以类的创建将更快 慎重使用增强型For循环语句 UseEnhancedForLoopSyntaxWithCaution 增强的for循环在数组里面性能很好 但是当和Iterable对象一起使用时要谨慎 因为这里多了一个对象的创建 避免使用枚举 AvoidEnums publicclassFoo publicenumShrubbery GROUND CRAWLING HANGING 这会转变成为一个900字节的class文件 Foo Shrubbery class 第一次使用时 类的初始化要在独享上面调用方法去描述列举的每一项 每一个对象都要有它自身的静态空间 整个被储存在一个数组里面 一个叫做 VALUE 的静态数组 那是一大堆的代码和数据 仅仅是为了三个整数值 代价很高 通过内联类使用包空间 UsePackageScopewithInnerClasses 建议使用内部类 避免浮点类型的使用 AvoidFloat 尽量避免使用float类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吉林大学附属中学高三下学期4月联考化学试题试卷含解析
- 2026银行金融服务竞争格局分析及行业创新方向研究报告
- 山西省忻州二中2026届高三下学期第一次阶段考试(5月)化学试题含解析
- 2026湖北宜昌供销集团有限公司招聘2人备考题库有答案详解
- 2026安徽合肥国家实验室技术支撑岗位招聘备考题库含答案详解(完整版)
- 某玩具厂生产安全实施办法
- 2026浙江衢州市人才和就业管理中心实习见习岗位招聘2人备考题库附答案详解ab卷
- 2026四川广安安创人力资源有限公司招聘协议制工作人员4人备考题库附答案详解ab卷
- 2026江苏无锡惠山高新技术产业开发区开发建设有限公司招聘9人备考题库附答案详解(精练)
- 2026广西旅发通灵大峡谷旅游有限责任公司招聘2人备考题库附答案详解(培优)
- 手术并发症的预防与处理
- 2025年微机原理机考试题及答案
- 2025年卫生高级职称考试(临床医学检验临床血液技术)历年参考题库(含答案)
- 土壤热脱附技术
- 基坑支护钢板桩施工方案
- GB/T 46546-2025天然气分析的溯源性指南
- 社会团体账务会计分录
- 海上航标维护合同范本
- 2025年山东省聊城市教师招聘考试体育专业真题及参考答案
- 输液过敏反应抢救流程
- 《医学遗传学》期末考试试卷附答案
评论
0/150
提交评论