import java.util.*;public class Test {
public ArrayList getList() {
ArrayList list = new ArrayList();
return list;
} public static void main(String[] args) {
Test test = new Test();
test.getList();//getList()方法返回的是对象还是引用? }}
//如果是引用//1.方法返回的引用是在什么地方定义的?
//2.方法返回的引用是在什么地方传参(对象的地址)的?

解决方案 »

  1.   

    返回的是对象
    public static void main(String[] args) {
    Test test = new Test();
    test.getList();//getList()方法返回的是对象还是引用? }
    test.getList();//得到对象
    但是你没有把对象传递给任何的引用
    你可以这样定义
    public static void main(String[] args) {
    Test test = new Test();
                       ArrayList anotherList;
    anotherList=test.getList();//getList()方法返回的是对象还是引用? }
    anotherList就是引用的test.getList()返回的对象;
      

  2.   

    我认为引用.
    当调用getList(),应看一看,他方法的内容.ArrayList list = new ArrayList();
    这是又有引用,又有对象.但list是引用是毫无疑问的.那return list应该返回的
    是list的内容吧.也就是指向对象的地址.所以我认为方法返回的是对象的引用.
    试想想如果该一下return语句.return new ArrayList().那又是返回什么那!
    我认为还是引用(对象的地址).返回对象是不可能的!!!
    关键在于ArrayList list = new ArrayList();的完成了那些功能:
    1 在栈声明一个ArrayList的引用list
    2 分配空间,建立对象
    3 返回对象的引用地址赋给list.
      

  3.   

    我认为对于计算机原理而言,方法调用返回的是引用的副本,在return处将list引用的内容(就是对象的地址),赋给了一个匿名引用,这个匿名引用是在方法调用处隐式定义的(就是在test.getList();时候隐式定义的)因为有了匿名引用这个概念所以就产生了 如:test.getList().getSize();这样连点的写法。望请大家批评指正!
      

  4.   

    应该是什么都没有多,只是每执行一次的时候在内存中就会多一个LIST对象。其实,在这里说是对象和引用没有任何意思,引用也是他的对象
      

  5.   

    Java中除了基本数据类型(int, char等)以外全部是引用!!!