Java中的实例变量(原始类型)存储在哪里?栈与实例变量存储有关吗?

4

Java 中的实例变量(基本类型)存储在哪里?

3个回答

8

原始变量存储在与所有变量(包括引用)相同的位置中:

  • 在堆上创建(分配)的对象内部,或
  • 作为本地变量在方法堆栈帧中,或
  • 在其包含类的静态区域内(位于堆上)。

换句话说,类定义的实例变量存储在堆上,而方法内部定义的局部变量存储在该方法的堆栈帧中。 - Mike Hay

2
如果你指的是在类中声明的实例字段,它们作为对象自身分配的一部分在堆上分配。
方法本地声明的基本(值类型)变量存储在方法的堆栈帧中。

0

类加载器将带有限定名称的类加载到JVM中。JVM解析类的二进制数据并将该信息放置在方法区中。当JVM执行类时,它首先将对象(包括实例字段原始/非原始)放置在堆中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接