1.尽量减少对变量的重复计算
明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作:
for (int i = 0; i < list.size(); i++){}
建议替换为:
for (int i = 0, int length = list.size(); i < length; i++){}
这样,在list.size()很大的时候,就减少了很多的消耗
2.尽量采用懒加载的策略,即在需要的时候才创建
例如:
String str = "aaa";
if (i == 1){
list.add(str);
}
建议替换为:
if (i == 1){
String str = "aaa";
list.add(str);
}
3.循环内不要不断创建对象引用
例如:
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罢了,但是内存中只有一份,这样就大大节省了内存空间了。
7.假如是随机访问的,使用普通for循环效率将高于使用foreach循环;反过来,如果是顺序访问的,则使用Iterator会效率更高。
foreach循环的底层实现原理就是迭代器Iterator
for (int i = 0; i < list.size(); i++){}
Iterator<?> it = list.iterator();
while (it.hasNext()){
it.next()
}
1.尽量减少对变量的重复计算明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作:for (int i = 0; i &lt; list.size(); i++){}建议替换为:for (int i = 0, int length = list.size(); i &lt; length; i++)...