首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >const-class和const-方法类型的操作码是什么?是什么java代码生成它们?

const-class和const-方法类型的操作码是什么?是什么java代码生成它们?
EN

Stack Overflow用户
提问于 2018-12-18 11:02:54
回答 1查看 244关注 0票数 1

我正在创建一个用于dalvik应用程序后处理的工具。对于测试,我想要创建包含所有操作码的代码。我很难理解const类和const-方法类型的操作码是干什么的。dalvik官方文件中的定义并没有为我澄清这个问题。

康斯特级 将对给定索引指定的类的引用移到指定的寄存器中。在指示类型是原语的情况下,这将存储对基元类型的退化类的引用。

什么是对全班的参考?据我所知,这不是指对象。

const-方法-类型 将对给定索引指定的方法原型的引用移到指定的寄存器中。

据我所知,这不是函数指针。函数指针由

康斯特-方法-处理 将对给定索引指定的方法句柄的引用移到指定的寄存器中。

我的问题是:

const-class和const-method类型是用来做什么的?什么样的java代码会在Dalvik中生成这些操作码?

也许值得一提的是,我的java体验相当低--我是c++类型的人。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-18 12:48:23

当引用对象的类属性时,可以生成const-class。例如Class cls = MyObject.class

据我所知,方法句柄和类型不是由java代码生成的。您可以使用反射引用它们,但我不认为这样做实际上会生成const-method-typeconst-method-handle指令

它们支持invoke-custom的强制转换,它主要用于编译为java字节码并最终编译为dalvik字节码的其他语言。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53831599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档