You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中new创建对象的工作原理:变量存储内容解析(对比C++)

Java中Node m = new Node();的工作机制与变量m的存储内容

一、工作机制

  • 执行new Node()时,JVM会先在堆内存中为Node类的新实例分配内存,这块内存包含对象的成员变量、对象头(哈希码、GC标记、类型指针等元信息)。
  • 随后调用Node类的构造方法,完成对象初始化(比如给成员变量赋初始值、执行构造逻辑)。
  • 初始化完成后,JVM生成一个指向堆中该新对象的引用标识。
  • 最后把这个引用标识赋值给变量m:如果m是局部变量,它会存在栈内存里;如果是类的成员变量,则会存在堆内存的对应类实例结构中。

二、变量m存储的内容

变量m是一个对象引用,它存储的是能定位到堆中目标Node对象的标识信息,可理解为受JVM管控的"间接地址":

  • 和C++指针类似,它本身不存储对象实际数据,仅用于定位堆内的目标对象。
  • 和C++指针不同的是,Java引用无法直接进行内存地址算术运算,JVM会全程管理引用有效性,比如GC时追踪引用、确保引用不会指向无效内存等。

内容的提问来源于stack exchange,提问作者Pradeep SS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:38:14