黑马程序员技术交流社区

标题: 关于List的一个问题 [打印本页]

作者: 执笔梦    时间: 2014-6-11 15:39
标题: 关于List的一个问题
本帖最后由 执笔梦 于 2014-6-11 16:48 编辑

import java.util.ArrayList;
import java.util.List;
/*
  这两种方法有什么不同,结果好像没什么不同。求解。
*/
public class ListDemoTest {

        public static void main(String[] args) {
                ListDemoTest  demo = new ListDemoTest();
                System.out.println(demo.getAList().size());    //5
                System.out.println(demo.getAList2().size());   //5
        }
        public List<A> getAList(){
                A a;
                List<A> AList = new ArrayList<A>();
                for(int i =0;i<5;i++){
                        a = new A();
                        AList.add(a);                        
                }
                return AList;
        }
        
        public List<A> getAList2(){
                List<A> AList = new ArrayList<A>();
                for(int i =0;i<5;i++){
                        A a2 = new A();
                        AList.add(a2);                        
                }
                return AList;
        }

}
class A{
        
}

作者: 帅哥哥    时间: 2014-6-11 16:12
只是引用变量for循环结束后还活着不活着的问题,第一种定义在外面,for结束a还活着,指向最后new的那个对象,第二种,会不停的开栈,退栈,最后栈里面没有变量指向堆中的任何对象~~~
作者: 倪大大    时间: 2014-6-11 16:20
第二种在不停的创建A对象引用,在内存上来说过于浪费资源而已




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