我想知道这是如何发生的:Java 程序如何映射到 OS 进程(如下面的 Linux 所示):
在 C 中,它是程序如何编写以及整个调用堆栈如何在操作系统中进行的直接关联。我想知道如何在 Java 中实现映射?方法 meth(),在对象上调用:obj,是否只是转换为定位 obj.meth() 的地址,然后在堆栈上使用它在 C 中的方式?
提前致谢!
编辑:我也很想知道其他 OOP 语言通常使用的模型(C++、Python 等)。
我想知道这是如何发生的:Java 程序如何映射到 OS 进程(如下面的 Linux 所示):
在 C 中,它是程序如何编写以及整个调用堆栈如何在操作系统中进行的直接关联。我想知道如何在 Java 中实现映射?方法 meth(),在对象上调用:obj,是否只是转换为定位 obj.meth() 的地址,然后在堆栈上使用它在 C 中的方式?
提前致谢!
编辑:我也很想知道其他 OOP 语言通常使用的模型(C++、Python 等)。
大多数 Java JVM 都是纯 C 程序。所以图片将与正在解释/执行的第一个类文件相同。
之后,它取决于 JVM 实现。通常,他们会使用堆栈存储来跟踪控制类型信息,例如加载了哪些类、正在运行哪些线程等。对于实际的“程序”存储,解释器和垃圾收集器将使用普通的“malloc”/“mfree”来存储分配和释放内存以及一些相当复杂的控制结构以使垃圾收集器能够正常工作。