java性能优化

java程序性能优化

1:避免在循环条件中使用复杂表达式:在循环中,循环条件会被反复计算,如果不适用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。

例子:
import java.util.Vector;
class CEL{
void method(Vector vector){
   for(int i=0;i<vector.size();i++){
    //;
   }
}
}
改为:
import java.util.Vector;
class CEL{
void method(Vector vector){
   int size=vectopr.size();
   for(int i=0;i<size;i++){
    //;
   }
}
}
2:为‘vectors’和 'HashTables'定义初始化大小
jvm为vector扩充大小的时候需要重新创建一个更大的数组,将原先数组中的内容复制过来,最后,原先数组在被回收。可见Vector容量的扩大是一个破费时间的事情。通常,默认的10个元素大小是不够的。你最好能准确的估计你所需要的最佳大小

如:public vector v=new vector(20);

3:在finally块中关闭stream;
程序中使用到的资源应当被释放,以避免资源泄露。这最好在finally块中去做。不管程序执行结果如何。finally块总是会执行的,以确保资源的正确关闭。

4:使用system。arraycopy()代替通过来循环复制数组。

5:让访问实例内变量的getter/setter方法变成final

6:避免不需要的instanceof操作;
如果左边的对象的静态类型等于右边的,instanceof表达式返回永远为true

7字字符串相加的时候,使用‘’代替“”,如果该字符串只有一个字符的话。

8不要在循环中调用同步的方法。

9将try/catch块移出循环。
把try/catch块放入循环体内,会极大的影响性能,如果编译JIT被关闭或者你所使用的是一个不带JIT的JVM,性能会下降21%多。

10 对于常量字符串,用‘string’ 代替‘stringbuffer’。

11 使用三元运算符替换if else

12:不要在循环体中实例变量

13确定stringbuffer的容量

你可能感兴趣的:(java性能优化)