本帖最后由 FFF 于 2013-11-14 16:17 编辑
应该不是。按照JVM对内存"抠门"的特性。如果你next()完又不赋值的话。就应该是会释放掉。如果你做出了改变,那么改变的就是原数据。而迭代器里的东西用完就丢。而不是存储起来(如果储存也是储存到原数组里)。而且毕老师也说过,迭代器只是一个工具,用完后就没有意义了。一般节省内存的话都是用for语句来使用迭代的。for完成之后。for里面的东西都会被释放的。- public static void main(String[] args){
- ArrayList al = new ArrayList();
- al.add("123");
- al.add("123");
- al.add("123");
- al.add("123");
-
- for(Iterator i = al.iterator();i.hasNext();){
- i.next();//没有赋值、没有指向,没有改变。最后会被释放。而不是储存起来
- }
- System.out.println("黑马论坛Itrator迭代例子");
- }
复制代码 |