機械翻訳について

Java®仮想マシンの仕様

Java SE 26エディション

Tim Lindholm

Frank Yellin

Gilad Bracha

Alex Buckley

Daniel Smith

2026-02-03

法的通知

目次

1. はじめに
1.1 いくつかの歴史
1.2 Java Virtual Machine
1.3 仕様の構成
1.4 表記法
1.5 機能のプレビュー
1.5 プレビュー機能の使用に関する制限
1.5 現在のプレビューVM機能
1.6 フィードバック
2.Java Virtual Machineの構造
2.1 classファイル形式
2.2 データ型
2.3 プリミティブ型と値
2.3 整数型と値
2.3 浮動小数点型と値
2.3 returnAddressのタイプと値
2.3 booleanタイプ
2.4 参照タイプおよび値
2.5 ランタイム・データ領域
2.5 pcレジスタ
2.5 Java Virtual Machineスタック
2.5.3. ヒープ
2.5 メソッド領域
2.5 ランタイム定数プール
2.5 ネイティブ・メソッド・スタック
2.6 フレーム
2.6 ローカル変数
2.6 オペランドスタック
2.6 動的リンク
2.6 通常のメソッド呼出しの完了
2.6 メソッド呼出しの異常終了
2.7 オブジェクトの表現
2.8 浮動小数点演算
2.9 特別な方法
2.9 インスタンス初期化メソッド
2.9 クラス初期化メソッド
2.9 署名多相メソッド
2.1 例外
2.11 指図セット要約
2.11 タイプとJava Virtual Machine
2.11 ロードおよび格納手順
2.11 算術命令
2.11 タイプ変換指示
2.11 オブジェクトの作成と操作
2.11 オペランドスタック管理の手順
2.11 振替指示の管理
2.11 メソッドの呼出しおよび戻り命令
2.11 例外のスロー
2.11 同期
2.12 クラスライブラリ
2.13 パブリックデザイン、プライベート実装
3.Java Virtual Machine用のコンパイル
3.1 例の形式
3.2 定数、ローカル変数および制御構造体の使用
3.3 算術
3.4 ランタイム定数プールへのアクセス
3.5 その他のコントロール例
3.6 受信引数
3.7 メソッドの起動
3.8 クラス・インスタンスの操作
3.9 配列
3.1 スイッチのコンパイル
3.11 オペランド・スタックでの操作
3.12 例外のスローと処理
3.13 finallyのコンパイル
3.14 同期
3.15 注釈
3.16 モジュール
4.classファイル形式
4.1 ClassFile構造
4.2 名前
4.2 バイナリクラスおよびインタフェース名
4.2 修飾されていない名前
4.2 モジュール名とパッケージ名
4.3 記述子
4.3 文法表記法
4.3 フィールド記述子
4.3 メソッド記述子
4.4 一定のプール
4.4 CONSTANT_Class_info構造
4.4 CONSTANT_Fieldref_infoCONSTANT_Methodref_infoおよびCONSTANT_InterfaceMethodref_info構造
4.4 CONSTANT_String_info構造
4.4 CONSTANT_Integer_infoおよびCONSTANT_Float_info構造
4.4 CONSTANT_Long_infoおよびCONSTANT_Double_info構造
4.4 CONSTANT_NameAndType_info構造
4.4 CONSTANT_Utf8_info構造
4.4 CONSTANT_MethodHandle_info構造
4.4 CONSTANT_MethodType_info構造
4.4 CONSTANT_Dynamic_infoおよびCONSTANT_InvokeDynamic_info構造
4.4 CONSTANT_Module_info構造
4.4 CONSTANT_Package_info構造
4.5 フィールド
4.6 メソッド
4.7 属性
4.7 新規属性の定義と命名
4.7 ConstantValue属性
4.7 Code属性
4.7 StackMapTable属性
4.7 Exceptions属性
4.7 InnerClasses属性
4.7 EnclosingMethod属性
4.7 Synthetic属性
4.7 Signature属性
4.7.9.1. 署名
4.7 SourceFile属性
4.7 SourceDebugExtension属性
4.7 LineNumberTable属性
4.7 LocalVariableTable属性
4.7 LocalVariableTypeTable属性
4.7 Deprecated属性
4.7 RuntimeVisibleAnnotations属性
4.7.16.1. element_value構造
4.7 RuntimeInvisibleAnnotations属性
4.7 RuntimeVisibleParameterAnnotations属性
4.7 RuntimeInvisibleParameterAnnotations属性
4.7 RuntimeVisibleTypeAnnotations属性
4.7.20.1. target_info和集合
4.7.20.2. type_path構造
4.7 RuntimeInvisibleTypeAnnotations属性
4.7 AnnotationDefault属性
4.7 BootstrapMethods属性
4.7 MethodParameters属性
4.7 Module属性
4.7 ModulePackages属性
4.7 ModuleMainClass属性
4.7 NestHost属性
4.7 NestMembers属性
4.7 Record属性
4.7 PermittedSubclasses属性
4.8 フォーマット・チェック
4.9 Java Virtual Machineコードの制約
4.9 静的制約
4.9 構造的制約
4.1 classファイルの検証
4.1 タイプ・チェックによる検証
4.10.1.1. Java Virtual Machineアーティファクトのアクセサ
4.10.1.2. 検証タイプシステム
4.10.1.3. 指示表示
4.10.1.4. スタック・マップ・フレームとタイプの遷移
4.10.1.5. 型検査方法
4.10.1.6. コードストリームのタイプチェック
4.10.1.7. タイプ チェックの負荷および店の指示
4.10.1.8. protectedメンバーの型チェック
4.10.1.9. タイプ・チェック指示
アロード
乾杯
NULL値
aloadaload_<n>
anewarray
返す
配列の長さ
astoreastore_<n>
競技場
バロード
沿岸
bipush
コロード
城塞
checkcast
d2fd2id2l
お父さん
アジサイ
食堂
dcmp<op>
dconst_<d>
ddiv
dloaddload_<n>
dmul
dneg
震える
戻す
dstoredstore_<n>
dsub
ダップ
dup_x1
dup_x2
dup2
dup2_x1
dup2_x2
f2df2if2l
太っちょ
ロード
ファーストウェア
fcmp<op>
fconst_<f>
fdiv
floadfload_<n>
fmul
fneg
frem
戻す
fstorefstore_<n>
fsub
getfield
getstatic
gotogoto_w
i2bi2ci2di2fi2li2s
イヤド
アイロード
iand
イースト
iconst_<i>
成り行き
if_acmp<条件>
if_icmp<条件>
if<条件>
ifnonnullifnull
iinc
iloadiload_<n>
含む
イング
instanceof
invokedynamic
invokeinterface
invokespecial
invokestatic
invokevirtual
iorirem
配線
ishlishriushr
istoreistore_<n>
isubixor
l2dl2fl2i
ショッピングカート
ラロード
土地
売春婦
lcmp
lconst_<l>
ldcldc_wldc2_w
ldiv
lloadlload_<n>
ルムル
lneg
lookupswitch
lorlrem
戻す
lshllshrlushr
lstorelstore_<n>
lsublxor
monitorenter、monitorexit
multianewarray
new
newarray
いいえ
poppop2
putfield
putstatic
戻す
ロード
海岸
sipush
swap
tableswitch
wide
4.1 タイプ推論による検証
4.10.2.1. タイプ推論による検証のプロセス
4.10.2.2. Bytecode Verifier
4.10.2.3. longおよびdouble型の値
4.10.2.4. インスタンス初期化メソッドおよび新しく作成されたオブジェクト
4.10.2.5. 例外およびfinally
4.11 Java Virtual Machineの制限事項
5. ロード、リンクおよび初期化
5.1 ランタイム定数プール
5.2 Java Virtual Machineの起動
5.3 作成およびロード
5.3 ブートストラップ・クラス・ローダーを使用したロード
5.3 ユーザー定義クラス・ローダーを使用したロード
5.3 配列クラスの作成
5.3 制約のロード
5.3 classファイル表現からのクラスの導出
5.3 モジュールとレイヤー
5.4 リンク
5.4 検証
5.4 準備
5.4 解決策
5.4.3.1. クラスおよびインタフェース解決
5.4.3.2. フィールド解決
5.4.3.3. メソッド解決
5.4.3.4. インタフェース・メソッド解決
5.4.3.5. メソッド・タイプおよびメソッド・ハンドル解決
5.4.3.6. 動的に計算された定数およびコール・サイト解決
5.4 アクセス制御
5.4 メソッドのオーバーライド
5.4 メソッド選択
5.5 初期化
5.6 ネイティブ・メソッド実装のバインド
5.7 Java Virtual Machineの終了
6.Java Virtual Machine命令セット
6.1 原題: 「MUST」の意味
6.2 予約済商談コード
6.3 仮想マシンのエラー
6.4 指示摘要の書式
mnemonic
6.5 指示
アロード
乾杯
NULL値
一斉に
aload_<n>
anewarray
返す
配列の長さ
占星術
astore_<n>
競技場
バロード
沿岸
bipush
コロード
城塞
checkcast
d2f
d2i
d2l
お父さん
アジサイ
食堂
dcmp<op>
dconst_<d>
ddiv
dload
dload_<n>
dmul
dneg
震える
戻す
売店
dstore_<n>
dsub
ダップ
dup_x1
dup_x2
dup2
dup2_x1
dup2_x2
f2d
f2i
f2l
太っちょ
ロード
ファーストウェア
fcmp<op>
fconst_<f>
fdiv
道路
fload_<n>
fmul
fneg
frem
戻す
商店
fstore_<n>
fsub
getfield
getstatic
goto
goto_w
i2b
i2c
i2d
i2f
i2l
i2s
イヤド
アイロード
iand
イースト
iconst_<i>
成り行き
if_acmp<条件>
if_icmp<条件>
if<条件>
nullでない
ifnull
iinc
アイロード
iload_<n>
含む
イング
instanceof
invokedynamic
invokeinterface
invokespecial
invokestatic
invokevirtual
ドア
照明する
配線
ishl
ishr
拒む
istore_<n>
灌木
イシュル
ixor
jsr
jsr_w
l2d
l2f
l2i
ショッピングカート
ラロード
土地
売春婦
lcmp
lconst_<l>
ldc
ldc_w
ldc2_w
ldiv
lload
lload_<n>
ルムル
lneg
lookupswitch
トラック
レム
戻す
lshl
lshr
ストア
lstore_<n>
lsub
ラシュル
lxor
monitorenter
単価
multianewarray
new
newarray
いいえ
pop
pop2
putfield
putstatic
ret
戻す
ロード
海岸
sipush
swap
tableswitch
wide
7.OPコード・ニーモニック(OPコード別)
A. 限定ライセンス付与