求助!谁可以解释一下呢?
如下代码:
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这个对象返回去了,没有在内存中新建立任何东西。
第二种犯法,是新建了一个变量,在内存中有自己的地址,所以返回去的值虽然一样
但完全不是一个东西。