Reference 检查对节点对象的引用

Reference 检查对节点对象的引用,reference,nodes,Reference,Nodes,我有一个关于这个代码的问题 class Queue { Node first, last void enqueue(Object item){ if(!first){ last = new Node(item); first = last; } else { last.next = new Node(item); last = last.next;

我有一个关于这个代码的问题

class Queue {
    Node first, last
    void enqueue(Object item){
        if(!first){
            last = new Node(item);
            first = last;
        } else {
            last.next = new Node(item);
            last = last.next;
        }
    }
}
我想我不是很确定最后一个节点到底是什么。当我第一次、最后一次写入线节点时,我听说我正在引用一个节点对象。这到底是什么意思?它指向内存中的任何地方吗?我知道我从不调用构造函数,所以它不是新对象。你能给我一些见解吗

如果(!first)是什么意思?由于first不是布尔值,if语句检查的是什么?谢谢


我将非常感谢清楚和简单的帮助。Thank=)

第一行、最后一行的
节点声明了Node类型的两个变量。其中一个名为first,第二个名为last。这些节点对象是引用对象,因为它们包含内存中数据的地址,而不是包含数据本身

有关参考与值类型的更多信息:

last=新节点(项目)
实际上正在调用节点的构造函数。将创建一个新节点,该节点包含传入的项


if(!first)
检查第一个节点是否为空。如果为空,则执行该代码块。否则将执行第二个块。

谢谢您的帮助=)