首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数的putfield顺序

参数的putfield顺序
EN

Stack Overflow用户
提问于 2013-04-05 15:12:48
回答 1查看 189关注 0票数 3

在java字节码中,"putfield“指令期望栈的顶部是一个值,栈的顶部-1是一个引用。为什么不是反过来呢?

这个问题在我的课堂笔记中被问到了,我找不到答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-05 21:42:44

顺序实际上并不重要,因为VM和编译器可以以任何一种方式轻松实现。但Sun选择让较低的参数出现在堆栈的较低位置。

您不仅可以在putfield中看到这一点,还可以在许多其他指令中看到这一点,例如数组加载和存储以及方法调用。它们都遵循相同的约定。我能想到的唯一解释是,这种方式更直观。

如果从下到上按从左到右的顺序读出堆栈,那么堆栈上的参数将与方法签名或原始源代码中的参数具有相同的顺序。如果你想以另一种方式来做,程序员将不得不在心理上将堆栈视为颠倒的,这并不是什么大问题,但可能不那么直观。

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

https://stackoverflow.com/questions/15827930

复制
相关文章

相似问题

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