単純な式 Math.max(0,1) が次のバイトコード命令に変換されることに気付いたとき、私は Java バイトコードを勉強していました。
ICONST_0,
ICONST_1,
INVOKESTATIC(java/lang/Math.max)
私の質問は、Java が後入れ先出しスタックを使用するかどうかです。つまり、1 がスタックの 0 の前にあることを意味します。つまり、vm は max を呼び出すときにスタック上の項目の順序を逆にする必要があります。 1 の前に 0 を取得する命令。ただし、仕様書には、これについて注意するように記載されていますが、私の仮説は正しいです。