读书人

!哪位高手可以解释一上呢

发布时间: 2012-10-26 10:30:59 作者: rapoo

求助!谁可以解释一下呢?
如下代码:

public class StudentBuffer{    static Vector studentBuffer = new Vector();    ...    public void addStudent(Student theStudent){        studentBuffer.addElement(theStudent);    }    public Student type1GetStudent(int id){        Student tmpStudent;        for(i=0;i<student.size();i++){            tmpStudent = (Student)studentBuffer.elementAt(i);            if(tmpStudent.id == id){                return tmpStudent;            }        }        return null;    }    public Student type2GetStudent(int id){        Student tmpStudent;        for(i=0;i<student.size();i++){            tmpStudent = (Student)studentBuffer.elementAt(i);            if(tmpStudent.id == id){                Student retStudent = tmpStudent;                return retStudent;            }        }        return null;    }}

在这个对象中,两个根据ID取学生的方法有区别么?我认为是没有区别的,但在别人(sun)的源代码内,我发现了类似这样的代码. 1 楼 foy 2008-03-06 我也觉得没区别。。。 2 楼 domando 2008-03-07 应该是这样吧:
第一种方法 直接将tmpStudent这个对象返回去了,没有在内存中新建立任何东西。
第二种犯法,是新建了一个变量,在内存中有自己的地址,所以返回去的值虽然一样
但完全不是一个东西。

读书人网 >软件架构设计

热点推荐