关于java中面向对象的问题(小白)

Java中方法区中的类的成员方法是被提及到栈中实现的,想问一下通过对象去调方法的时候方法也是在栈中实现的吗?还是说在方法区或者堆中实现?


回答:

没太明白你想问什么,但愿回答对你有所帮助。首先,java中一个方法的调用会伴随着对应该方法的一个栈帧的入栈,栈帧所存在的位置是jvm的运行时数据区中的虚拟机栈或本地方法栈中,且该部分为每个线程独享。至于方法区,根据不同jdk的版本其具体实现也不同,jdk7之前为永久代,jdk8及以后为元空间,主要存放类型信息,常量,静态变量,部分代码缓存等,且该部分为线程间共享的。而堆中保存的是一个Class类的实例,作为访问方法区中该类型元数据的接口。


回答:

个人看法。jvm 的 操作基本都是由操作数栈完成,将指令和 引用放入操作数栈,invokexxxx, 所以应该是在栈中调用的。

以上是 关于java中面向对象的问题(小白) 的全部内容, 来源链接: utcz.com/p/944368.html

回到顶部