您的位置:首页 > 编程语言 > Java开发

java程序优化之有助于改善性能的技巧

2013-12-13 13:32 633 查看
看java程序性能优化有一些很好用的知识或者算是技巧可以提高程序的性能技巧,姑且简单的记录下吧;

(1)慎用异常

在java软件开发中经常使用try-catch进行错误捕获,但是try-catch语句会对系统性能产生一定的影响,所以使用时尽量把try-catch放在、循环外。如下面所示 :
int a=0;
try{
for(int i=0;i<100000000;i++){
a++
}
}catch(Exception e){
...
}

(2)使用位运算代替乘除法

在所有的运算中,位运算是最为高效的。因此因尽可能使用位运算代替乘除运算。例如:
  
long a =100;
for(int i=0;i<10000000;i++)
{
a*=2;
}
性能就不如使用a<<=1;的性能好

(3)替换switch

switch用于多条件判断,switch类似于if-else语句,性能也差不多,不过switch在绝大部分情况下都有优化的空间的。
例如:
protected int switchInt(int z){
int i = z%10+1;
switch(i){
case 1: return 3;
case 2: return 6;
case 3: return 7;
case 4:	return 8;
case 5 :return 10;
default:return -1;
}

}
因为数组的随机访问的性能的良好,所以使用数组来存储switch中的分支内容可以改善性能。

int re = 0;
int [] sw =new int[]{0,3,6,7,8,10};
for (int i = 0; i<1000000;i++){
re = switchInt(sw,i);
}
protected int arrayInt(int z){
int i = z % 10 + 1;
if(i>4||i<1)
return -1;
else
return sw[i];
}

(4)提取表达式

软件开发过程中往往有许多重复性的代码或者操作,提取这些重复的操作会更好的发挥系统的性能.例如:
x = d*a*b/3*4*a;
y = e*a*b/3*4*a;
//由于后面表达式故可以使用如下代码
t =  a*b/3*4*a ;
x  = d*t;
y =  e*t;代替

(5)使用arrayCopy()

数组复制是一项使用频率很高的功能,JDK中提供了高效的API来实现它。System.arraycopy(array,0,arraydst,0,size);//进行复制

(6) 使用Buffer进行IO操作。

除了NIO外,使用Java进行I/O操作还有两种基本方式:

1.使用基于InputStream和OutputStream 的方式
2.使用Writer和Reader

(7)使用clone()方法代替new

Java中创建对象实例最常用的方法是new,使用new关键字创建轻量级对象时,速度非常快,但是对于重量级对象,由于创建时候构造函数进行

一些复杂的操作时,使用new会影响使用的性能,因此使用clone.()不受构造函数性能影响能够快速生成实例。

(8)善用设计模式

使用代理模式来处理一些延迟加载,使用观察者模式进行自身状态的监听,使用亨元模式在SAAS中根据不同租用信息实现功能的共享与分离。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: