Java For Loop差异

One*_*ros 2 java foreach loops for-loop

这些语句在Java的内存占用和效率方面完全相同吗?

第一:

Object[] array = new Object[100];
int i = 0;
for (; i < array.length; i++){
   Object o = array[i];
   //do something
}
Run Code Online (Sandbox Code Playgroud)

第二:

Object[] array = new Object[100];
for (int i = 0; i < array.length; i++){
   Object o = array[i];
   //do something
}
Run Code Online (Sandbox Code Playgroud)

第三:

Object[] array = new Object[100];
for (Object o : array){
   //do something
}
Run Code Online (Sandbox Code Playgroud)

Ted*_*opp 6

在内存占用和效率方面,是的.但是,存在差异.在第一个中,i存在(有一个范围)超出循环; 而在第二个它没有.在第三种情况下,没有(直接)方式来访问索引或更改当前对象位置的数组内容.

  • 那是对的.如果您喜欢冒险,可以使用javap查看每种循环生成的字节代码.他们应该非常接近相同. (2认同)