Max*_*ind 7 java memory heap stack
假设我们有一个班级:
class Class1
{
int i = 1;
}
Run Code Online (Sandbox Code Playgroud)
我们有一个变量:
Class1 ob1 = new Class1();
Run Code Online (Sandbox Code Playgroud)
ob1存储了它引用的对象的信息Class1? Class1存储堆的哪一部分是否存储了Class1类型的信息? 如果您可以推荐这些信息的来源,我将非常感谢提供它,我在参考书中找不到它.
存储在变量 ob1 中的引用本身是否存储了它引用 Class1 对象的信息?
不。引用变量ob1只存储它所指向的对象的引用。并且应用程序(或 JVM)已经知道有关该对象的信息。
堆中存储Class1的部分是否存储了它是Class1类型的信息?
不。正在加载的类的信息存储在方法区中。正如此链接中所指定的
,对于它加载的每种类型,Java 虚拟机必须在方法区中存储以下类型的信息:
这些信息在逻辑上看起来如何?它是像 application1.Class1 这样的字符串还是对某些引用类型池的引用?
在 Java 类文件和 Java 虚拟机内部,类型名称始终存储为完全限定名称。例如,包 java.lang 中的类 Object 的完全限定名称表示为java/lang/Object。在方法区域中,完全限定名称可以以设计者选择的任何形式和数据结构来表示。
| 归档时间: |
|
| 查看次数: |
798 次 |
| 最近记录: |