1、循环条件中的复杂表达式应该独立出来
在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。
例子:
import java.util.vector;
class cel {
void method (vector vector) {
for (int i = 0; i < vector.size (); i++) // violation
; // ...
}
}
更正:
class cel_fixed {
void method (vector vector) {
int size = vector.size ()
for (int i = 0; i < size; i++)
; // ...
}
}
2、使用移位来代替‘a/b’操作
例如:
public class sdiv{
public static final int num=16;
public void cal(int a){
int div = a/4;
int div2= a/8;
int temp=a/3;
}
}
更正:
public class sdiv{
public static final int num=16;
public void cal(int a){
int div = a>>2;
int div2= a>>3;
int temp=a/3;//不能转换成移位操作
}
}
3、对equals不熟
if(user.get("s").equals("ss")){
//一堆代码
}
一旦前端出现null就错来,null不能.equals
改为:
if("ss".equals(user.get("s"))){
//一堆代码
}
4、对return不熟
public String getResult() {
if ("条件") {
//一大堆代码
return "结果";
}else {
//一大堆代码
return "结果";
}
}
既然有return了确定以下代码不走,就可以放心大胆放出来
public String getResult() {
if ("条件") {
//一大堆代码
return "结果";
}
//一大堆代码
return "结果";
}
5、不断创建对象引用
for (int i = 1; i <= 100; i++)
{
Object obj = new Object();
//其他代码
}
这样做,只会在内存里开辟很多Object对象的引用,可改为
Object obj;
for (int i = 1; i <= 100; i++)
{
obj = new Object();
//其他代码
}