源于虚拟机的设计者 Dan Bornstein,从快到慢依次排序如下:
/*
* How To Write Faster Loops (after Dan Bornstein, Google Engineer)
*
* - http://www.youtube.com/watch?v=ptjedOZEXPM
*
*/
/* 1 (最快) */
for (int i = initializer; i >= 0; i--) { ... } //initializer 初始值
/* 2 */
int limit = calculateLoopLimit();//limit 限定值
for (int i = 0; i < limit; i++) { ... }
/* 3 */
Type[] array = getMyArray();
for (Type obj : array) { ... }
/* 4 */
for (int i = 0; i < array.length; i++) { ... }
/* 5 */
for (int i = 0; i < this.var; i++) { ... }
/* 6 */
for (int i = 0; i < obj.size(); i++) { ... }
/* 7 (最慢) */
Iterable<Type> list = getMyList();
for (Type obj : list) { ... }