-
慎用try catch,不要在循环体中去做try catch
-
尽量用局部变量代替全局变量:调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中,速度较快,静态变量,实例变量等都保存在堆中,速度较慢。
-
位运算代替乘除法
int a = 100;
a<<=1; //a乘以2 -
尽量使用一维数组代替二维数组
-
关注循环体,对循环体中的重复运算的代码进行提取,放到循环外执行。如获取数组或集合的大小,循环中做了重复的运算操作。
-
进行数组复制时,应使用arraycopy函数
int [] array = new int[10];
int []copy = new int[10];
System.arraycopy(array,0,copy,10); -
循环给数组或集合赋值时,使用以下方式展开循环可极大的减少循环次数,(循环比赋值要费时间)
int[] array = new int[99999];
for(int i=0;i<99999;i+=3){
array[i] = i;
array[i+1] = i+1;
array[i+2] = i+2;
} -
使用Buffer进行io操作,使用缓冲组件对文件IO进行包装,可以大幅度提升性能
DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(“文件路径”))); -
如果构造函数比较复杂,则在创建对象时可以考虑使用clone,但是注意clone返回的对象是浅拷贝,对于内部的属性,如集合,类属性,两个对象指向的是同一个属性,这时候需要重写clone()进行深拷贝
java程序性能优化技巧
最新推荐文章于 2024-06-25 12:00:00 发布