「 代码性能优化 」java 高级程序员必知必会的 55 个代码性能优化技巧

1、尽量在合适的场合使用单例
2、尽量避免随意使用静态变量
3、尽量避免过多过常地创建 Java 对象
4、尽量使用 final 修饰符
5、尽量使用局部变量
6、尽量处理好包装类型和基本类型两者的使用场所
7、慎用 synchronized,尽量减小 synchronize 的方法
9、尽量不要使用 finalize 方法
10、尽量使用基本数据类型代替对象
11、多线程在未发生线程安全前提下应尽量使用 HashMap、ArrayList,不建议使用 HashTable、Vector,因其使用了同步机制,降低了性能
12、尽量合理的创建 HashMap
13、尽量减少对变量的重复计算
14、尽量避免不必要的对象创建
15、尽量在 finally 块中释放资源
16、尽量使用移位来代替 'a/b' 的操作
17、尽量使用移位来代替 'a*b' 的操作
18、尽量确定 StringBuffer 的容量
19、尽量早释放无用对象的引用
20、尽量避免使用二维数组
21、尽量避免使用 split
22、随机查询尽量使用 ArrayList,添加删除的操作 LinkedList 优于 ArrayList
23、尽量使用 System.arraycopy () 代替通过来循环复制数组
24、尽量缓存经常使用的对象
25、尽量避免非常大的内存分配
26、慎用异常
27、尽量重用对象
28、不要重复初始化变量
29、在 java+Oracle 的 应用系统开发中,java 中内嵌的 SQL 语言应尽量使用大写形式,以减少 Oracle 解析器的解析负担。
30、在 java 编程过程中,进行数据库连接,I/O 流操作,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销。
31、保证过期的对象的及时回收具有重要意义
32、在使用同步机制时,应尽量使用方法同步代替代码块同步。
33、不要在循环中使用 Try/Catch 语句,应把 Try/Catch 放在循环外层
34、通过 StringBuffer 的构造函数来设定它的初始化容量,可以明显提升性能
35、合理使用 java.util.Vector
38、不用 new 关键字创建对象的实例
39、不要将数组声明为:public static final
40、HaspMap 的遍历利用散列值取出相应的 Entry 做比较得到结果,取得 entry 的值之后直接取 key 和 value
41、array 数组效率高,但容量固定,无法动态改变,ArrayList 容量可以动态增长,但牺牲了效率
42、单线程应尽量使用 HashMap, ArrayList
43、建议使用 StringBuffer
44、尽量使用基本数据类型代替对象。
45、使用具体类比使用接口效率高,但结构弹性降低了,但现代 IDE 都可以解决这个问题。
46、考虑使用静态方法
47、应尽可能避免使用内在的 GET,SET 方法。
48、避免枚举,浮点数的使用。
49、避免在循环条件中使用复杂表达式
50、为 'Vectors' 和 'Hashtables' 定义初始大小
51、在 finally 块中关闭 Stream
52、使用 'System.arraycopy ()' 代替通过来循环复制数组
53、让访问实例内变量的 getter/setter 方法变成 ”final”
54、对于常量字符串,用 'String' 代替 'StringBuffer'
55、在字符串相加的时候,如果该字符串只有一个字符使用 ' ' 代替 " "
参考:
《菜鸟程序员成长计划》之代码性能优化系列文章,将对上述每一条优化细节展开讨论,请持续关注!
版权声明: 本文为 InfoQ 作者【小刘学编程】的原创文章。
原文链接:【http://xie.infoq.cn/article/93fd97254d74c8d0d205ca65d】。文章转载请联系作者。
评论 (1 条评论)