- 尽量减少对变量的重复计算
明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作:
for (int i = 0; i < list.size(); i++){
...
}
//建议替换为:
for (int i = 0, length = list.size(); i < length; i++){
...
}
这样,在list.size()很大的时候,就减少了很多的消耗
- 尽量采用懒加载的策略,即在需要的时候才创建
String str = "aaa";
if (i == 1){
list.add(str);
}
//建议替换为:
if (i == 1){
String str = "aaa";
list.add(str);
}
- 循环内不要不断创建对象引用
for (int i = 1; i <= count; i++){
Object obj = new Object();
}
//这种做法会导致内存中有count份Object对象引用存在,count很大的话,就耗费内存
//建议为改为:
Object obj = null;
for (int i = 0; i <= count; i++){
obj = new Object();
}
这样的话,内存中只有一份Object对象引用,每次new Object()的时候,Object对象引用指向不同的Object罢了,但是内存中只有一份,这样就大大节省了内存空间。
网友评论