何时创建局部变量堆栈?

时间:2015-09-11 19:22:44

标签: java jvm this bytecode super

我正在学习jvm的内部知识并阅读this文章。虽然阅读我有一个疑问,即 创建本地变量堆栈时如果本地变量堆栈在运行时创建超级关键字指向真实对象或者如果在编译时创建局部变量堆栈,这个超级关键字如何在内部工作?

1 个答案:

答案 0 :(得分:2)

  

何时创建局部变量堆栈?

articles.sdf以字节代码将局部变量分配给堆栈。这种分配是名义上的,实际机器中的实际分配可能非常不同。

javac优化代码之后,可以内联局部变量和方法本身,在这种情况下,在理想情况下没有任何事情发生。

  

如果在运行时创建局部变量堆栈,超级关键字指向真实对象

运行时没有JIT。只有当前对象可用,例如代表super的对象以及可以调用它们的方法。当您使用this时,您指的是父类中的方法而不是当前方法。

  

或者,如果在编译时创建局部变量堆栈,那么超级关键字如何在内部工作?

super更改编译器选择调用的方法。完成此选择后,将忽略supersuper之间的区别。