没有重新分配的对象

时间:2014-09-18 20:42:12

标签: java object linked-list

我刚刚开始使用库而不是从头开始创建所有内容,但这会导致一些我不理解的问题。

我有一个链接列表,我正在添加'信息' - 里面有变量'age'和'name'的对象,但我很困惑。

  List<ClientInfo> list = new LinkedList<>();
    ClientInfo information = new ClientInfo();
    information.age = 44;
    list.add(information);
    information = new ClientInfo(); // without this line it doesn't work, but i don't get why it shouldn't
    information.age = 66;
    list.add(information);

    int age = list.get(0).age;
    System.out.println(age);
    age = list.get(1).age;
    System.out.println(age);

正如你在上面看到的,它完全正常工作,但是,当我删除注释行它不再起作用时,它只是向两个字段添加66并且我不明白为什么我肯定可以修改信息对象无需重新创建节点?

有人可以告诉我为什么吗?

1 个答案:

答案 0 :(得分:3)

如果没有该行,您只有一个实例在年龄44和年龄66共享 - 实际上相同的对象被插入两次,并且两者都有66岁,因为它会覆盖44。

使用该行,您创建了第二个实例,尽管重用了相同的变量,现在它指向/引用另一个对象。