【发布时间】:2016-09-08 10:09:44
【问题描述】:
标识符或变量名存储在 java 中的什么位置?我知道对象存储在堆中,变量存储在堆或堆栈中,具体取决于变量的类型和范围。我们可以调试或编写任何程序来确认吗?
感谢和问候
【问题讨论】:
标签: java object variables heap-memory stack-memory
标识符或变量名存储在 java 中的什么位置?我知道对象存储在堆中,变量存储在堆或堆栈中,具体取决于变量的类型和范围。我们可以调试或编写任何程序来确认吗?
感谢和问候
【问题讨论】:
标签: java object variables heap-memory stack-memory
字段的名称作为类元数据的一部分存储在以前的 PermGen 现在的元空间中。
数组元素没有名称,只有数字。 (Cue Patrick McGoohan.)
方法和构造函数参数以及局部变量和处理程序参数的名称仅存储在类文件的调试符号信息中(如果选择了该选项)。 JVM 不需要它们,因为编译器已将它们映射到字节码中使用的堆栈帧槽号。
【讨论】:
变量名称与其他类元数据一起存储在“方法区域”(它是 permgen 的一部分)中。
有一个特殊的区域来保存类元数据,称为方法区。这是 permgen 的一部分(在 java 8 之前的堆中),现在它已被移动到元空间
【讨论】:
变量名存储在永久代的方法区。对象始终存储在堆中,而对象引用存储在堆栈中。
【讨论】: