下面说的是我的bean类:什么是输出和为什么ArrayList /任何集合的行为是这样的?
public class Employee {
private String name = null;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
这是我的主类:
import java.util.ArrayList;
public class MainClass {
public static void main(String[] args) {
Employee employee = new Employee();
employee.setName("First name");
ArrayList<Employee> empList = new ArrayList<Employee>();
empList.add(employee);
employee.setName("Last name");
for (Employee emp : empList) {
System.out.println(emp.getName());
}
}
}
当我执行的输出是:Last name
我的问题是:
- 据我所知Java是pass-by-value或者说 pass-by-copy-of-the-variable-value然后就
employee
对象的副本被保存在ArrayList中或引用它作为增加ArrayList
后的对象值得到改变 到Last name
员工的 原来的对象? - 每个收藏品都是这样吗?
当一个基元被传递给一个函数时,它是通过值传递的,当一个对象被传递给一个函数时,对该对象的引用是按值传递的。 – 2015-03-02 10:49:48