1

今日の試験で以下の問題が出題されました。答えはまだわかりません。

Java は、JVM のバイト コードにスタックを使用します。各命令は 1 バイトなので、1 つのオペレーティング システムで (バイト コードごとに) いくつの命令を実行できるかを示します。

私が知っているのは、スタックが 32 ビット幅であることだけです。誰でも私を助けることができますか (私は JVM の初心者です)?

4

1 に答える 1

4

期待される答えはほぼ確実に 256 でした。これは、1 バイトの可能な値が 256 あるためです。

もちろん、これは実際の JVM 命令セットとは何の関係もありません。可能な命令の数は、カウント方法に応じて、数十から指数関数的に大きな数までさまざまです。

実際の JVM 命令セットには、多くの未使用のオペコード、概念的に複数の命令を表す 1 つのオペコード、および複数の異なるオペコードを使用してさまざまな方法でエンコードできる多くの命令があります。多くの命令は 1 バイトを超えており、いくつかは最大 64kb の長さにすることができます。そして、それは、ワイド プレフィックスのカウント方法のようなものには入っていません。

于 2013-07-26T04:35:01.950 に答える