java - 这两种说法到底有什么区别

标签 java memory

我是java初学者,我正在阅读这段代码

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

    ListNode current = front;

这两组语句不是创建一个新对象,还是仅为第一个语句保留内存,而第二个语句仅声明一个变量来保存前节点的内存?

最佳答案

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/

相关文章:

c++ - CLWB(缓存行回写)到同一位置与循环通过几行的性能低下

java - MOXy JAXB 在 XmlIDREF 上中断为具有枚举属性的类型

java - 数字格式异常: for string "" when using <spring:bind> tag with form checkboxes

php - 如何在 PHP 脚本中获取实际内存限制?

windows - 大内存块分配和 4K block

java - Java 8 与 Java 9 之间的内存分配是否存在差异?

java - Coldfusion.security.NTAuthentication : Error in locating groups for user XXX in domain XXX

java - 终端输出 Vscode

java - 如何使用 Hibernate 修复 "mappedByReference"异常?

memory - 字符串的连续赋值会导致内存泄漏吗?