文章内容收录到个人网站,方便阅读:http://hardyfish.top/变量存放位置的判断依据Java运行时内存主要分为:栈(Stack) :线程私有,存放方法调用相关数据。堆(Heap) :线程共享,存放对象实例。方法区 / 元空间(Method Area / Metaspace) :存放类元信息、常量池、静态变量。判断依据:基本类型的值(除 String 这种引用类型外)。如果是方法的局部变量 → 存在栈帧的局部变量表如果是对象的成员变量 → 存在对象实例中(堆里)引用类型变量引用本身(指向对象的地址)存放在栈帧局部变量表或对象实例中。对象本体存放在堆中。类的元数据、常量池、静态变量 ...