Method.invoke 何时在 Java 中检索 vtable 方法指针

When does Method.invoke retrieve the vtable method pointer in Java

提问人:Slimu 提问时间:2/12/2023 最后编辑:Slimu 更新时间:2/13/2023 访问量:57

问:

我正在阅读《The Well Grounded Java Developer 2nd edition》一书,在第 17 章(现代内部)中描述了反射内部是如何工作的。首先讨论了 Entry 与 Entry.class 的二元性(第一张图片),它显示了 Class 中的方法数组如何与实际类型的 klassOop 中的排序(索引)匹配。接下来,在第二个屏幕截图中,我们看到了一个 DelegatingMethodAccessorImpl,其作用是将实际调用委托给本机或自定义方法访问器。

MethodAccessor 的调用何时以及如何从 klassOop 中检索要执行的方法的字节码。我猜使用了 Method.slot 字段,但从可用代码来看,我看不出具体是怎么回事,但我怀疑是一些本机调用可能会读取它。

enter image description here

enter image description here

java jvm 热点

评论


答: 暂无答案