以下优化方法在《android应用开发揭秘》一书中摘抄。
在java程序中,性能问题的大部分原因不在于java语言,而是在于程序本身。下面就来具体分析一下这方面的问题。
1:尽量指定类的final修饰符。
带有final修饰符的类是不可派生的。在java核心api中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了人们覆盖length()方法。另外,如果指定一个类为final,则该类所有的方法都是final。java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。
2:尽量重用对象。
特别是String对象的使用中,出现字符串连接情况时应使用StringBuffer代替。由于系统不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收处理。因此,生成过多的对象将会给程序的性能带来很大的影响。
3:尽量使用局部变量。
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其它变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。
4:不要重复初始化变量。
默认情况下,调用类的构造函数时,java会把变量初始化成确定的值,所有的对象被赋值成null,整数变量(byte,short,int,long)设置成0,float和double变量设置成0.0,逻辑值设置成false。当一个类从另一个类派生时,这一点尤其应该注意,因为用new关键词创建一个对象时,构造函数链中的所有构造函数都会被自动调用。
5:在java+oracle的应用系统开发中,java中内嵌的sql语句尽量使用大写的形式,以减轻oracle解析器的解析负担。
6:java编译过程中,进行数据库连接、i\o流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,会导致严重的后果。
7:由于jvm的有其自身的gc机制,不需要程序开发者的过多考虑,从一定程度上减轻了开发者负担,但同时也遗漏了隐患,过分的创建对象会消耗大量的系统内存,严重时会导致内存泄露,因此,保证过期对象的及时回收具有重要意义。jvm回收垃圾的条件是:对象不再被引用;然而,jvm的gc并非十分地机智,即使对象满足了垃圾回收的条件也不一定会被立即回收。所以,建议在对象使用完毕后,手动设置成null。
分享到:
相关推荐
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...
数据库优化,代码优化数据库,超简单,java初级程序员专用。
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...
初级程序员Java简历资源描述: 熟悉Java编程语言,具备基本的面向对象编程能力 熟悉基本的数据结构和算法,能够解决简单的编程问题 了解常用的Java开发工具和框架,如Eclipse、Spring等 具有良好的团队合作和沟通...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...
16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员...
16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员...
该宝典系统地整理了Java初级,中级,高级的基础知识,代码质量,解题思路,优化效率等面试要点,面试的基础知识从编程语言,数据结构及算法三方面总结程序员面试知识点,世间事,很多都可投机取巧,但技术却必须靠日积月累的...
15.3 初级优化 15.4 高级优化 15.5 Android高效开发 15.6 AndroidUI优化 15.7 其他优化 15.7.1 zipalign 15.7.2 图片优化 15.8 小结 第五部分 扩展篇 第16章 Android NDK开发 16.1 AndroidNDK...
•不惧怕重构代码库以防止位腐烂•您知道何时代码可以很好地执行,以及代码的哪些部分可能无法正常工作,但是您还知道何时开始进行优化还为时过早。 •您愿意自由共享信息,指导其他初级开发人员并编写文档。 •您...
初级java笔试题Golang游乐场 大图 谁创造了 GO? Go 不是由一些热门的初创公司创建的,也不是一种时尚! 它的创建是为了解决现有编程语言的特定问题。 它由一些行业知名工程师创建。 他们拥有丰富的经验并使用多种...
初级java笔试题 计算机科学职业 电子游戏开发商 基础知识 简而言之,视频游戏开发人员是为视频游戏创建视觉效果和编写代码的人。 他们的职责包括: 计划游戏:他们计划故事情节、人物、进展等。他们会将项目分解成更...
),它生成Java代码时会双向比对Java文件。所以本版基本上是重构开发,命名为dalgenX。 与支付宝dalgen还有一个区别:支付宝dalgen只支持ibatis,而dalgenX可以在ibatis与mybatis之间自由切换生成.dalgenX解决dalgen...
5、Spark案例实战的代码,几乎都提供了Java和Scala两个版本和讲解(一次性同时精通Java和Scala开发Spark); 6、大量全网唯一的知识点:基于排序的wordcount,Spark二次排序,Spark分组取topn,DataFrame与RDD的两种...
初级工程师:阅读官方文档+练习官方Demo 技术要求 四大组件使用 如何布局 简单的自定义View 动画 书籍推荐 《第一行代码》 《疯狂Android》 中级工程师:写文章要独立思考和有技术深度;阅读源码+自定义View+滑动...
还有两个重点:(1)项目代码使用的都是常用但入门门槛较低的方式,比较适合初级Android开发者;(2)项目在持续优化中 使用的开源技术(蓝色字体含链接): 1. 2. 3.Gson解析 4. 5. 6. 7. 8. 9. 10. 11.ShareSDK 12. 13. 14. ...