在 c/c++ 中,本地对象在堆栈上创建,数据从堆栈馈送到 cpu 寄存器。
在 Java 中没有堆栈,所有对象都分配在堆上,现在对于预先编写的代码,可以计算对象所需的大小,而不是为每个对象堆分配一个过大的 c c++ 风格,整个代码块被放置一下子下来。这样一来,Java 的堆性能几乎与 c/c++ 中的堆栈一样好,几乎可以媲美。
我的问题是程序如何从堆流到最终被执行?
假设我运行一个函数,将程序代码复制到内存中,程序进入堆内存后,返回程序入口点地址,我如何启动它的执行?
最佳答案
在 Java 中是一个堆栈。仅仅因为对象分配在堆上并不意味着没有堆栈。执行不会发生在堆上,执行是将方法调用添加到堆栈和从堆栈中展开,就像 C/C++ 的执行流程一样。
关于java - 堆中的 Java 执行与 c/c++ 堆栈中的执行有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8916556/