黑马程序员技术交流社区

标题: 关于Java语言for循环内外变量定义的问题 [打印本页]

作者: 〃Mr.Zぐ    时间: 2013-4-19 13:24
标题: 关于Java语言for循环内外变量定义的问题
代码定义在循环内和定义在循环外有什么区别呢?这两种方式有什么好坏之分?
  1. public class Test2 {  
  2.   
  3.     public static void main(String[] args) {  
  4.          
  5.         // 放入10000000的元素  
  6.         List<Object> list = new ArrayList<Object>(10000000);  
  7.         for(int i = 0; i < 10000000; i++) {  
  8.             list.add(i, new Object());  
  9.         }  
  10.          
  11.         // 做10次循环,求均值  
  12.         for(int j = 0; j < 10; j++) {  
  13.               
  14.             // 变量在循环内定义  
  15.             long t1 = System.currentTimeMillis();  
  16.             for(Iterator<Object> iterator = list.iterator(); iterator.hasNext();) {  
  17.                 Object object = iterator.next();  
  18.             }  
  19.             long t2 = System.currentTimeMillis();  
  20.             System.out.println("循环内" + (j + 1) + "次, 时间:" + (t2 - t1) + ";");  
  21.               
  22.             // 变量在循环外定义  
  23.             t1 = System.currentTimeMillis();  
  24.             Object object = null;  
  25.             for(Iterator<Object> iterator = list.iterator(); iterator.hasNext();) {  
  26.                 object = iterator.next();  
  27.             }  
  28.             t2 = System.currentTimeMillis();  
  29.             System.out.println("循环外" + (j + 1) + "次, 时间:" + (t2 - t1) + ";");  
  30.         }  
  31.     }  
  32. }  
  33.   
复制代码

作者: 殇_心。    时间: 2013-4-19 13:41
想你这种情况的话定义在外面比较好。因为就是一个复用变量嘛。
你在循环内定义的话  你需要在内存里面定义这么多个变量。
耗内存呗。结果还是一样。

作者: 刘兆华    时间: 2013-4-21 16:29
    定义在内部时,每次for循环 都会创建一次...  你执行多少次 他就创建多少次。 定义在外部 就是创建一次  然后多次操作  操作的还是那一个。
作者: 江大海    时间: 2013-4-21 19:36
变量定义在内部的话是是不可以输出,在循环完之后就被释放了,而外面的话就可以输出,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2