Java中类内部基本数据类型的内存分配:栈区还是堆区?
Java对象实例成员的内存分配问题
当你通过new A()创建类A的对象时,实例变量int a会作为对象的一部分,被分配在堆区。
这里需要明确两个内存区域的分工:
- 栈区主要存储局部变量和方法调用的栈帧:比如
main方法里的obj变量(它是指向A对象的引用)就位于栈区。 - 堆区负责存储对象本身及所有实例成员:所有通过
new关键字创建的对象,包括它的实例字段(无论基本数据类型还是引用类型),都会被分配在堆内存中。
对应你给出的代码示例:
class A { int a; // 属于对象实例的一部分,分配在堆区 public static void main(String[] args) { A obj = new A(); // obj引用变量在栈区,指向堆中的A对象实例 } }
内容的提问来源于stack exchange,提问作者Aniket_Mishra
相关产品推荐
相关产品推荐

