Java性能优化的小细节

性能优化实现方式(单纯考虑代码层面):java

1.减少代码体积数据库

2.提升运行效率数组

如何作:安全

1.尽可能指定类.方法的final修饰符性能优化

带有final修饰的类是不可派生的,该类全部的方法都是final的,java编译器会寻找机会内联全部的final方法,有助于提升运行效率.性能

2.尽可能复用对象优化

对象的建立和维护都会花费java虚拟机的精力,特别是String对象的使用,出现的字符串链接要使用StringBuilder/StringBuffer来替代+号,所以,生成过多的对象将会给虚拟机带来没必要要的负担;ui

3.及时关闭流线程

使用I/O流对数据进行操做是会对系统形成很是大的负担,用完要及时close;指针

4.不要在循环语句中进行复杂的处理,以及一些异常处理,应该把这些提取到循环外层

例如try...catch...应该放在外层

5.循环内不要进行对象的频繁建立,除非不得已的状况下;

6.尽可能使用HashMap、ArrayList、StringBuilder,除非对线程安全有需求,不推荐使用HashTable、Vector、StringBuffer后三者由于作了同步机制对性能有较高的要求;

7.清除不须要的会话;

8.将常量声明为static final,而且用大写来命名

9.不建立一些不使用的对象,不导入一些不使用的包

10.程序运行过程当中避免使用反射,能够考虑在项目启动的时候经过反射建立对象而且加载到内存中

发射是java很是强大的一个功能,可是功能强大的同时也意味着效率不高,尤为是Method的invoke方法

11.使用数据库链接池和线程池

这样前者能够避免频繁的打开和关闭流,后者能够避免频繁的建立和销毁线程;

12.使用带缓冲的流进行I/O操做

13.public修饰的方法中形参最对不要超过3个

形参过多会致使方法的容错率下降,若是有不少方法能够用实体类包装传递;

14.在使用equals的时候把常量放在前面

这样能够避免空指针异常

15.不要对数组使用toString()方法

由于对数组使用只会打印出一串对象地址,并且有可能由于数据引用is为空而致使空指针异常,不过能够对集合使用toString()方法,由于集合的父类AbstractCollections重写了toString()方法;

16.不要对超出数据范围的基本数据类型作向下的强制类型转换,会致使精度损失

17.对基本数据类型转换为字符串最快的方式是toString(),其次是String.valueOf(数据),再次是+"" 最慢

18.对资源的关闭建议分开操做

例如 

try{

stream.close();

fileInPutStream.close();

}catch(Exception e){

.....

}

建议修改成

try{stream.close}catch(Exception e){....} 

try{fileInPutStream.close()}catch(Exception e){....}

第一种写法,假如stream流出了问题,抛了异常,那么fileInPutStream就没法关闭,这样代码一多,就有可能引发资源句柄泄露.

第二种写法虽然麻烦可是不管如何都会关闭,更加安全,固然也可使用finall来关闭.

相关文章
相关标签/搜索