|
オペランドスタックとはJava仮想マシンで定義されているメモリ内の領域の1つ。 スレッドごとに作られる仮想マシンスタック(オペランドスタックとは別のもの)に、フレームと呼ばれる小分けされた領域がある。 オペランドスタックは、そのフレーム内の領域の種類の1つである。特殊なスタックである。 オペランドスタックは仮想マシンの機械語の命令(バイトコード)から直接使用される。Java仮想マシンはスタックマシンであり、レジスタが無いため、オペランドスタックを作業領域に使って計算などを実行する。例えば、ローカル変数の int の値を2つ iload命令でオペランドスタックにプッシュし、iadd命令でその2つをポップし、加算する、というような使い方がされる。 オペランドスタック1つの領域サイズは32ビットで、long 型と double 型だけは2つ分のサイズ(64ビット)を使用する。 Javaクラスファイルのロード時チェックにより、オペランドスタックに積まれた時の型以外の使用をすること(float でプッシュした値を int として使用するなど)は一部の命令を除き禁止されている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「オペランドスタック」の詳細全文を読む スポンサード リンク
|