Java,当你做object = object时内部发生了什么?

JUN*_*TAE 3 java object object-reference singly-linked-list

我在Java中实现单链表,我有一个问题.除了和删除节点之外,很多人都使用这样的临时节点:

public Object removeFirst() {
   Node temp = head;
   head = temp.next;
   Object returnData = temp.data;
   temp = null;
   size--;
   return returnData;
}
Run Code Online (Sandbox Code Playgroud)

为什么这个临时节点是必要的?乍一看,我认为为了删除第一个元素我必须做的就是将第二个元素更改为头节点.

所以我的问题是在java中,object= object意味着什么?继承每个字段和方法,2个对象是否完全相同?

Era*_*ran 6

temp不需要.它用于Nodehead变量不再引用变量后获取已删除的数据Node,但可以在没有变量的情况下完成:

public Object removeFirst() 
{
    Object returnData = head.data;
    head = head.next;
    size--;
    return returnData;
}
Run Code Online (Sandbox Code Playgroud)