黑马程序员技术交流社区
标题:
关于Java语言for循环内外变量定义的问题
[打印本页]
作者:
〃Mr.Zぐ
时间:
2013-4-19 13:24
标题:
关于Java语言for循环内外变量定义的问题
代码定义在循环内和定义在循环外有什么区别呢?这两种方式有什么好坏之分?
public class Test2 {
public static void main(String[] args) {
// 放入10000000的元素
List<Object> list = new ArrayList<Object>(10000000);
for(int i = 0; i < 10000000; i++) {
list.add(i, new Object());
}
// 做10次循环,求均值
for(int j = 0; j < 10; j++) {
// 变量在循环内定义
long t1 = System.currentTimeMillis();
for(Iterator<Object> iterator = list.iterator(); iterator.hasNext();) {
Object object = iterator.next();
}
long t2 = System.currentTimeMillis();
System.out.println("循环内" + (j + 1) + "次, 时间:" + (t2 - t1) + ";");
// 变量在循环外定义
t1 = System.currentTimeMillis();
Object object = null;
for(Iterator<Object> iterator = list.iterator(); iterator.hasNext();) {
object = iterator.next();
}
t2 = System.currentTimeMillis();
System.out.println("循环外" + (j + 1) + "次, 时间:" + (t2 - t1) + ";");
}
}
}
复制代码
作者:
殇_心。
时间:
2013-4-19 13:41
想你这种情况的话定义在外面比较好。因为就是一个复用变量嘛。
你在循环内定义的话 你需要在内存里面定义这么多个变量。
耗内存呗。结果还是一样。
作者:
刘兆华
时间:
2013-4-21 16:29
定义在内部时,每次for循环 都会创建一次... 你执行多少次 他就创建多少次。 定义在外部 就是创建一次 然后多次操作 操作的还是那一个。
作者:
江大海
时间:
2013-4-21 19:36
变量定义在内部的话是是不可以输出,在循环完之后就被释放了,而外面的话就可以输出,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2