gpt4 book ai didi

java - putfield 参数顺序

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:09:34 25 4
gpt4 key购买 nike

在 java 字节码中,“putfield”指令期望栈顶是一个值,栈顶 1 是一个引用。为什么不是相反?

在我的讲义中被问到,我找不到答案。

最佳答案

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

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

如果按照从左到右的顺序从下到上读出堆栈,则堆栈上的参数将与方法签名或原始源代码中的参数顺序相同。如果您想以另一种方式进行,程序员将不得不在心理上将堆栈视为颠倒的,这没什么大不了的,但可能不太直观。

关于java - putfield 参数顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15827930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com