“a”在 JVM 指令(如“a load”或“a return”)中意味着什么?

2023-11-29

“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(使用前将#替换为@)

“a”在 JVM 指令(如“a load”或“a return”)中意味着什么? 的相关文章

  • 非活动状态下的 Spring Boot 堆使用情况

    我在本地部署了一个非常简单的 spring boot 应用程序 它只有一个类 控制器 差不多就这样了 我注意到堆分配并不稳定 并且有峰值和突然下降 为什么会这样 我没有对应用程序进行过一次调用 A view from VisualVM 事实
  • 如何计算Java数组的内存大小?

    我知道如何通过添加三个部分来计算Java对象的内存大小 标头 属性 引用 我还知道Java数组也是一个对象 但是当我读到 Understanding the JVM Advanced Features and Best Practices
  • HotSpot使用的Mark-Compact算法是什么?

    当阅读 Mark Compact 章节时垃圾收集手册 https rads stackoverflow com amzn click com 1420082795 提出了一系列替代方案 但其中大多数看起来很旧 理论上 例如 2 指压缩和 L
  • 什么触发了java垃圾收集器

    我对 Java 中垃圾收集的工作原理有点困惑 我知道当不再有对某个对象的实时引用时 该对象就有资格进行垃圾回收 但是如果它有对实时对象的引用怎么办 可以说我有一个节点集合 它们再次引用更多节点 List 1 gt Node a gt Nod
  • 线程/进程/任务之间有什么区别?

    线程 进程 任务之间有什么区别 Process 进程是正在执行的计算机程序的实例 它包含程序代码及其当前活动 根据操作系统 OS 进程可能由同时执行指令的多个执行线程组成 基于进程的多任务处理使您能够在使用文本编辑器的同时运行 Java 编
  • “分支”到底是什么意思?

    长话短说 据我所知 术语 分支 Git 术语 可能指的是相关但不同的事物 指向提交的非符号引用 指针 此类引用的名称 例如 master 存储库提交 DAG 的子图 由此类引用所指向的提交可到达的所有提交组成 然而 我发现这个术语显然指的是
  • Git 中“瓷器”一词是什么意思?

    瓷器 一词偶尔出现在 Git 文档中 这是什么意思 瓷器 是通常制造厕所 有时也制造洗脸盆等其他固定装置 的材料 这与 管道 实际的管道和排水管 不同 在 管道 中 瓷器为管道提供了更用户友好的界面 Git 类比地使用这个术语 将用户通常不
  • 为什么 Haskell 中有协函子和逆变函子的区别,而范畴论却没有区别?

    这个答案是从范畴论的角度来看的 https math stackexchange com a 661989 72174包括以下语句 事实是 协函子和逆变函子之间没有真正的区别 因为每个函子只是一个协变函子 More in details a
  • Scala REPL 中的递归重载语义 - JVM 语言

    使用 Scala 的命令行 REPL def foo x Int Unit def foo x String Unit println foo 2 gives error type mismatch found Int 2 required
  • JVM内存段分配

    好吧 我有一个关于 JVM 内存段的问题 我知道每个 JVM 都会选择稍微不同地实现这一点 但这是一个总体概念 在所有 JVM 中应该保持相同 一个在运行时不使用虚拟机执行的标准C C 程序在运行时有四个内存段 代码 堆栈 堆 数据 所有这
  • Java 类:匿名类、嵌套类、私有类

    有人能解释一下Java中匿名类 嵌套类和私有类之间的区别吗 我想知道与每个相关的运行时成本以及每个编译器的方法 这样我就可以掌握哪个最适合用于例如性能 编译器优化的潜力 内存使用以及其他 Java 编码人员的普遍可接受性 我所说的匿名类是指
  • Java:为什么它使用固定数量的内存?或者它如何管理内存?

    JVM 似乎使用了一些固定数量的内存 至少我经常看到参数 Xmx 对于最大尺寸 和 Xms 对于初始大小 这表明 我感觉 Java 应用程序不能很好地处理内存 我注意到一些事情 即使一些非常小的示例演示应用程序也会加载大量内存 也许这是因为
  • UseCompressedOops JVM 标志有什么作用以及何时应该使用它?

    HotSpot JVM 标志是什么 XX UseCompressedOops我应该做什么以及什么时候使用它 在 64 位 Java 实例上使用它 与不使用它 时 我会看到什么样的性能和内存使用差异 去年大多数 HotSpot JVM 都默认
  • 抛出 Java 异常时是否会生成堆栈跟踪?

    这是假设我们不调用 printstacktrace 方法 只是抛出和捕获 我们正在考虑这样做是为了解决一些性能瓶颈 不 堆栈跟踪是在构造异常对象时生成的 而不是在抛出异常对象时生成的 Throwable 构造函数调用 fillInStack
  • Kotlin 未解决的参考:CLI 上 gradle 的 println

    放一个printlnkotlin 函数返回之前的语句会崩溃 堆栈跟踪 thufir dur NetBeansProjects kotlin thufir dur NetBeansProjects kotlin gradle clean bu
  • 测量 tomcat 的排队请求数

    因此 使用tomcat 您可以设置acceptCount值 默认为100 这意味着当所有工作线程都忙时 新连接被放置在队列中 直到队列满 之后它们被拒绝 我想要的是监视此队列中项目的大小 但无法确定是否有办法通过 JMX 获取此值 即不是队
  • 什么是竞争条件?

    编写多线程应用程序时 最常见的问题之一是竞争条件 我向社区提出的问题是 竞赛条件是什么 你如何检测它们 你如何处理它们 最后 如何防止它们发生 当两个或多个线程可以访问共享数据并且它们试图同时更改它时 就会出现竞争条件 由于线程调度算法可以
  • ASM之前看一下maxStack指令吗?

    我正在尝试使用 ASM 库将字节代码转换为不同的格式 这可以使用 MethodVisitor 来完成 就像这个简单的测试代码一样 return new MethodVisitor ASM7 Override public void visi
  • 为什么java(>=7版本)不支持运行没有main方法的程序? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 class WithoutMain static System out println Without main class Sy
  • Java:VM 如何在 32 位处理器上处理 64 位“long”

    JVM 如何在 32 位处理器上处理 64 位的原始 long 在多核 32 位机器上可以并行利用多个核心吗 64 位操作在 32 位机器上慢了多少 它可能使用多个核心来运行不同的线程 但不会并行使用它们进行 64 位计算 64 位长基本上

随机推荐

  • 从 datetime.timedelta 对象中删除“ x days ”

    我需要创建一个报告 其中需要减去两个日期并以以下形式返回 H M S 这是我插入列表中的减法 time difference temp datetime strptime next time Y m d H M S datetime str
  • Java:以一定角度移动对象并使用 KeyPress 改变角度

    好的 所以我想要的是矩形始终移动 但是当您按下左右箭头时 会通过增加或减少角度来改变方向 使用此代码 正方形会按照正确的方向移动 但是当我按下按键时 方向不会改变 import java awt import java awt Color
  • 需要帮助纠正用 Javascript (node.js) 编写的 CRC-ITU 检查方法中的问题

    我们正在尝试在 Javascript 上编写 GPS 设备侦听器代码 在此过程中 我们无法开发正确的 CRC ITU 错误检查脚本 协议文档生成crc码的解释如下 终端或服务器可以使用校验码来区分 接收到的信息是否有误 为了防止错误 数据传
  • xmlstarlet XPath 表达式选择单个结果而不是多个

    我有一个 XML 文件 其结构如下
  • 不在“程序和功能”控制面板中显示应用程序版本

    可以删除或隐藏AppVersion从安装 我不想看到程序版本 程序及特点 安装后 Set AppVersion空 或删除该行 因为该指令默认为空 但是 那么你必须设置AppVerName 根据您的需要 将其设置为My Program 1 0
  • 自定义旋转弹出窗口

    我想修改微调弹出对话框 我想实现我自己的自定义旋转弹出窗口 可能还是不可能 任何人都可以为我提供解决方案来实现自定义微调器弹出窗口吗 这是为了统一我的应用程序中的各种弹出窗口而做出的努力 看到这里是一个简单的例子 它让您了解如何构建自定义微
  • SwiftUI:.contextMenu 关闭时的通知(iOS)

    我在用着 contextMenu和 一起 onDrag在视图上 这似乎非常棘手 通过设置背景颜色变为灰色dragging为真 这是由 onDrag打开上下文菜单时已经发生了这种情况 有点早但还可以 当我使用按钮关闭菜单时 我可以设置drag
  • 在 IIS7 中将表单发送到 404 + HttpHandler:为什么所有 POST 数据都丢失了?

    好吧 这可能听起来有点令人困惑和复杂 所以请耐心听我说 我们编写了一个框架 允许我们定义友好的 URL 如果您浏览任意 URL IIS 会尝试显示 404 错误 或者在某些情况下显示 403 14 或 405 但是 IIS 已设置为将任何针
  • Gatttool非交互模式--char-write

    仍在询问 BLE 设备和gatttool 我可以在交互模式下发送 char write cmd 但无法在非交互模式下执行相同的操作 这是我以交互模式发送的内容 gatttool I gt connect BTADDR BTADDR gt c
  • 自动化 Team Foundation Build 配置

    我目前正在寻找一种无需使用配置向导即可配置 Team Foundation Build 服务 一个构建代理的方法 有没有办法做到这一点 无论是通过命令行 我还没有找到 TFS Build 的任何命令行安装选项 还是通过 API Thanks
  • 如何使用WebRTC将视频流传输到RTMP?

    我正在尝试构建一项服务 将您的屏幕从浏览器流式传输到客户端 例如抽搐 我所完成的是我用 rtmp 构建了一个工作的 nginx 服务器 我使用 OBS 对其进行了测试 这效果很好 我的问题是如何使用 WebRTC 将屏幕从浏览器 不是来自
  • 将向量的每个元素与第二个向量的每个元素相加

    我有两个向量 我想要一个矩阵 其元素是向量 1 的每个元素和向量 2 的每个元素的总和 例如 该矩阵第一行的第一个元素是向量1的第一个元素和向量2的第一个元素的和 第一行的第二个元素是向量 1 的第一个元素与向量 2 的第二个元素之和 依此
  • 查看同一个表中的另一条记录时将 SQL 子查询转换为联接 Access 2010

    我读过联接比子查询更有效 我有一个查询非常慢并且使用大量子查询 因此我想改进它但不知道如何改进 我有以下表格 People this table stores lists of individual people with the foll
  • adb devices 命令和 eclipse 无法识别我的索尼爱立信 xperia x10

    我使用的是Windows XP adb devices 命令不显示我的 xperia x10 和 eclipse 无法识别我的 xperia x10 我有 htc magic 效果很好 我从以下位置下载了驱动程序 http develope
  • Google Chart vAxis 值未显示

    我正在处理各种图表 并在单个页面中显示多个图表 不知何故 vAxis 值没有显示在某些图表上 但它显示在一些独立的图表中 我们可以说它在不同的部分并手动触发 我已经尝试了我能尝试的一切 var data google visualizati
  • 错误:ORA-01704:字符串文字太长

    当我尝试在具有数据类型的字段上设置超过 4000 个字符的值时CLOB 它给了我这个错误 ORA 01704 字符串文字太长 任何建议 如果我必须设置无限字符的值 哪种数据类型将适用于我 尽管对于我的情况来说 它恰好是关于15000 cha
  • IE8中的settimeout问题

    我在 IE8 中使用 javascript setTimeout 函数时遇到一个奇怪的问题 我想像这样使用 setTimeout 函数 setTimeout timeout 2000 name saarthak function timeo
  • Domino 中的身份验证和 Web 服务?

    有没有办法允许在 Domino Web 服务中进行身份验证 如果是这样 我该怎么做 IBM 有一个例子here 有other options
  • 自定义类中没有实体管理器和 ContextErrorException

    我正在尝试在 Sonata Admin 中创建自定义表单 我想将数据从数据库获取到选择框 当我尝试通过 getEntityManager 获取数据时出现错误 No entity manager defined for class Admin
  • “a”在 JVM 指令(如“a load”或“a return”)中意味着什么?

    a 在 JVM 指令 如 a load 或 a return 中意味着什么 我知道它们对引用进行操作 但为什么它们被命名为 aload astore 等而不是 reload restore 等 我相信历史上 a 代表 地址 因为对象引用只是