“a”在 JVM 指令(如“a load”或“a return”)中意味着什么?
我知道它们对引用进行操作,但为什么它们被命名为“aload”、“astore”等而不是“reload”、“restore”等?
我相信历史上“a”代表“地址”,因为对象引用只是堆中的一个简单地址。
对这个想法的支持可以在以下来源中找到K虚拟机由 Sun Microsystems 开发——最早的 Java ME 虚拟机之一。源码可以从以下地址下载CLDC 1.1 RI 页面.
片段来自kvm/VmCommon/src/bytecodes.c
:
#if STANDARDBYTECODES
SELECT(ILOAD) /* Load integer from local variable */
unsigned int index = ip[1];
pushStack(lp[index]);
DONE(2)
#endif
...
#if STANDARDBYTECODES
SELECT(ALOAD) /* Load address from local variable */
unsigned int index = ip[1];
pushStack(lp[index]);
DONE(2)
#endif
here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)