【问题标题】:Number of instructions in JVMJVM中的指令数
【发布时间】:2013-07-26 12:35:01
【问题描述】:

我今天在考试中被问到以下问题。我还是不知道答案。

Java 在 JVM 中使用堆栈作为字节码。每条指令都是一个字节,那么操作系统中可能有多少条这样的指令(每个字节码)。

我只知道堆栈是 32 位宽的。谁能帮助我(我是 JVM 的初学者)?

【问题讨论】:

  • 这个问题与堆栈、操作系统或JVM无关。唯一相关的词是“字节”。
  • 那么答案是“4条指令”吗?
  • 答案与在一次再见中可以保存多少不同的值有关。

标签: jvm bytecode


【解决方案1】:

预期的答案几乎肯定是 256,因为一个字节有 256 个可能的值。

这当然与实际的 JVM 指令集无关。根据您的计数方式,可能的指令数量可以从几十个到指数级不等。

实际的 JVM 指令集有许多未使用的操作码,一个操作码在概念上代表多条指令,许多指令可以用多种不同的操作码以多种不同的方式编码。许多指令超过一个字节,其中一对最长可达 64kb。这甚至没有涉及到如何计算宽前缀。

【讨论】:

  • 请解释您所说的“许多指令超过一个字节,其中一对最长可达 64kb”是什么意思。 OP 显然是在谈论被识别的不同操作码的数量。并且规范非常明确地说明了应该解释多宽。
猜你喜欢
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多