我是Java的初学者,正在经历这段代码

    ListNode current = new ListNode();
    current = front;




    ListNode current = front;


两组语句都没有创建一个新对象,还是仅为第一个位置保留了内存,而为第二个语句只声明了保存fron节点内存的可变变量?

最佳答案

ListNode current = new ListNode();
current = front;


这将创建一个新的ListNode并将其分配给current。然后,它将立即覆盖该引用,从而丢失对新对象的引用。这几乎肯定是一个错误。该代码等效于

new ListNode();
ListNode current = front;


如果ListNode()构造函数没有副作用,则第一条语句是无用的,可能只是

ListNode current = front;

关于java - 这两个语句之间到底有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25706209/

10-10 11:56