Java性能:小建议

性能优化是个很重要的问题,既不能忽视,又不能过度沉迷。
现在提几条小建议,当然具体情况可能要做一些改变,灵活运用:

1:不要在循环条件中计算
如果在循环条件中计算,则每循环一遍就要计算一次,这会降低效率。

2:尽量把变量,方法声明为final static 类型
比如说有一个不变数组,这种情况下把他加上final static 会更加合理,当然也可以考虑用枚举类型,具体情况具体分析。加上这两个修饰符之后,类加载之后就会生成该数组,每次方法调用就不用重新生成数组对象了,可以提高系统性能。

3:缩小变量的作用范围
关于变量,能放在方法内的就放在方法内,能放在循环中的就放到循环中,能放到try catch 块中的就放到块中,其目的就是为了加快GC回收。

4:频繁的字符串操作使用StringBuilder 或StringBuffer
虽然String的链接操作符已经做了很多优化,但是在大量的追加操作上,StringBuilder或者StringBuffer的性能要好很多。

5:使用非线性搜索
如果ArrayList中数据较多,使用indexOf查找元素会比java.util.Collections.binarySearch效率低很多,原因是binarySearch使用的是二分搜索法,而indexof是逐个元素比对。注意!!!使用binarySearch的时候,元素必须要先进性排序,否则准确性就不能确认。

6:override Exception方法的fillStackTrace方法
fillStackTrace是用来记录异常时栈信息的,这是一个非常耗时的工作,如果在开发的时候不需要关注栈信息,那么可以覆盖它,直接在方法中return this.

7:不要建立冗余对象
不需要建立的对象就不要建立,实际上要遵守还是有一定的的难度。经常在不经意之间建立冗余对象,最好就是在使用的时候才建立。

最后:程序的运行需要CPU,内存,IO,这三者就是程序性能优化的目标。
提升CPU可以加快代码的执行速度,直接表现出返回时间缩短,效率提高
内存,一个程序占用内存越大,寻址效率就越低,这也是影响效率的重要因素
I/O,是数据展示和数据存储的主要通道

你可能感兴趣的:(Java性能:小建议)