欢迎进入北大青鸟(广州网耀)全国IT职业教育示范中心

学历不是敲门砖,技术才是硬道理

咨询热线:4006-1122-06
当前位置:首页 > 青鸟知识库 > java > 技术分享

Java 代码性能优化技巧

发布时间: 2016-01-29 09:44:14   作者:本站编辑   来源: 本站原创   浏览次数:

对于程序员来说,代码优化是个重要课题,也是一个容易被忽视的细节问题。

代码优化的目的是:

1、减小代码的体积

2、提高代码运行的效率

如果项目着眼于尽快无BUG上线,可以抓大放小,不必精细打磨代码的细节。但是如果有充足的时间开发、维护代码,这时就必须考虑每个可以优化的细节了,一个个细微的点积累,绝对可以起到提升代码的运行效率的效果。

 

下面是一些代码优化的技巧

1、尽量给类和方法指定final修饰符

带有final修饰符的类是不可派生的。在Java核心接口中,有很多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不能被继承,为方法指定final修饰符可以让方法不能被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。此举能够使性能平均提高50%。

2、尽可能重用对象

尤其是使用String对象时,出现字符串连接时应该使用StringBuilder/StringBuffer代替。由于Java虚拟机不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理,因此,过多的对象生成会给程序性能带来很大的影响。

3、尽量使用局部变量

调用方法过程中创建的临时变量以及调用方法时传递的参数都保存在栈中,速度较快,而其他变量如静态变量、实例变量等,都在堆中创建,速度较慢。栈中创建的变量,随着方法运行的结束,这些内容就没了,不需要额外的垃圾回收。

4、及时关闭流

开发过程中进行数据库连接、I/O流操作时一定要谨慎,使用完毕后要及时关闭以释放资源。因为对这些大对象的操作会产生较大的系统资源消耗,稍有不慎,将会导致严重的后果。

5、慎用异常

异常对性能不利。抛出异常首先要创建一个新的对象,Throwable接口的构造函数调用名为fillInStackTrace()的本地同步方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。只要有异常被抛出,Java虚拟机就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。异常只能用于错误处理,不应该用来控制程序流程。

6、不要在循环中使用try…catch…,应该把其放在最外层

除非不得已。如果毫无理由地这么写了,只要你的领导资深一点、有强迫症一点,八成就要骂你为什么写出这种垃圾代码来了

7、当复制大量数据时,使用System.arraycopy()命令

8、基于效率和类型检查的考虑,应该尽可能使用array,无法确定数组大小时才使用ArrayList

9、将常量声明为static final,并以大写命名

这样在编译期间就可以把这些内容放入常量池中,避免运行期间计算生成常量的值。另外,将常量的名字以大写命名也可以方便区分出常量与变量

10、不要创建一些不使用的对象,不要导入一些不使用的类

这毫无意义,如果代码中出现”The value of the local variable i is not used”、”The import java.util is never used”,那么请删除这些无用的内容

分享到:
我来说两句
评论内容:
验  证  码:
 
(网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。)
评论列表
已有 0 条评论(查看更多评论)