java中代码优化问题

来源:互联网 发布:九索数据怎么样 编辑:程序博客网 时间:2024/06/18 14:54

java中代码优化问题

1、根据条件使用符号整型变量

原则:无符号类型:除法和余数,循环计数,数组下标;有符号类型:整型到浮点的转化

例如:以“F”或者“f”为后缀(3.14f)的浮点常量才是float型的,否则默认为double型。

unsigned int i; i=i/10;优于int i;i=i/10;

2、大循环放里面小循环放外面

forint i=0;i<5;i++{

   .....

   for(int j=0;j<10000;j++){

       ......

   }

}

3、与循环不相关的尽量放外面

例如...

s=1;

for(int i=0;i<100;i++){

   s=s/(k1*k2)

}

变成

s=1;

m=k1*k2;

for(int i=0;i<100;i++){

   s=s/m

}

4、尽量不要在循环中使用try{}catch{}

5、循环内不要创建大量的临时变量

例:for(int i=0;i<100;i++){

   ...

   HelloKit  helloKit=new HelloKit();

   ...

}应该变为:

   HelloKit  helloKit=null;

for(int i=0;i<100;i++){

   ...

   helloKit=new HelloKit();

   ...

}

6、尽量使用懒加载:即需要时才创建

ArrayList arrayList=new ArrayList();

String str="hello"

if(j==10){

   arrayList.add(str);

}

改为:

if(j==10){

   String str="hello"

   arrayList.add(str);

}

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

两个数组间的复制尽量不要用循环,用java提供的数组拷贝方法

public void arrayCopy(){

   int[] array1= new int[20];

   for(int i=0;i<20;i++){

       array1=i;

   }

   int[] array2=new int[20];

   System.arraycopy(array1,0,array2,0,20);

   for(j=0;j<20;j++){

   System.out.println(array2+",");

   }

 

}

7、减少循环次数变量的读取

for(int i=0;i<list.length;i++){

}//这样每次都会判定i是否到了list.length边界,每次都需要进行边界大小的计算

改为:

for(int i=0,j=list.length;i<j;i++){

}//这样j是局部变量只需要初始化一次

8switch()中,常用的case值放前面,不常用的放后面

9尽量使用局部变量

局部变量调用方法时候传递的参数以及在调研中产生的临时变量都保存在栈(stack)中,静态变量,实例变量都是在堆中(Heap)创建,速度较慢。

10、将类中不变的实例静态化

如果类中的变量不会随他的实例而变化,就可以定义为静态变量,从而使得其它所有的实例都共享这个变量

11、尽量指定类的final修饰符

public final void  doWork(){
  ......
}

 

0 0
原创粉丝点击