堆中的Java执行与c/c ++堆栈的执行有何不同?

dte*_*ech 1 c c++ java heap stack

在c/c ++中,在堆栈上创建本地对象,并将数据从堆栈馈送到cpu寄存器.

在Java中没有堆栈,所有对象都在堆上分配,现在对于预先编写的代码,可以计算对象所需的大小,而不是每个对象堆栈分配过多的c c ++样式.整个代码块立即被放置.这样,Java的堆性能几乎与c c ++中的堆栈性能完全相当.

我的问题是程序如何从堆流到最终执行?

让我们假设我运行一个函数将程序代码复制到内存中,在程序进入堆内存后,返回程序入口点地址,如何启动它的执行?

cde*_*zaq 5

在Java中一个堆栈.仅仅因为在堆上分配对象并不意味着没有堆栈.执行不会发生在堆上,执行是从堆栈中添加和退出的方法调用,就像C/C++的执行流程一样.

  • 如果它们不是您的意思,那么为什么在您的问题中使用它们呢? (3认同)