如果在我的for循环内部相同的对象在所有迭代中被初始化会发生什么?

时间:2014-10-10 04:17:45

标签: java

员工和爱好是该计划中的两个班级。在for循环中,Employee和Hobby对象在每次迭代中都被初始化,它们是否会指向每次或相同位置的新内存位置?

public void addEmployees(int a, HashMap<Employee,Hobby> hMap)
{
    Scanner obj = new Scanner(System.in);
    Scanner obj1 = new Scanner(System.in);

    for(int i =0; i<a ; i++)
    {
        Employee emp = new Employee();
        Hobby hob = new Hobby();
        System.out.println("Enter id of employee:");
        int num = obj.nextInt();
        emp.setEmployeeId(num);

        System.out.println("Enter name of employee:");
        String str = obj1. nextLine();
        emp.setName(str);

        hob.enterHobby();
        hMap.put(emp,hob);
    }    
}

2 个答案:

答案 0 :(得分:1)

实际的内存位置无关紧要,因为它对Java程序不可见,但每次迭代都会构造一个新对象。

答案 1 :(得分:0)

每次都在堆上创建新对象。他们可能会也可能不会指向同一地点。