Javaバイトコード 【Java bytecode】
概要
Javaバイトコード(Java bytecode)とは、Java仮想マシン(JVM:Java Virtual Machine)によって実行することができる命令の体系。また、その命令コードを並べて作られたプログラム。Java言語で書かれたプログラムをコンパイルすることで得られる。JVMはソフトウェアによって構成された一種の仮想的なコンピュータで、そのCPUが解釈・実行する機械語(マシン語)に相当する言語がJavaバイトコードとなる。命令の種類を示す命令コード(opcode:オペコード)が1バイト、その後に続くパラメータ(オペランド)がバイト単位の可変長という構成になっているため「バイトコード」と呼ばれる。
Java言語で記述されたソースコードはコンパイラによってJavaバイトコード形式に変換されて配布される。配布先で実行する際に、JVMがJavaバイトコードを解釈して実行環境のCPU固有の機械語で書かれたネイティブコードへ変換し、実行する。これにより、環境ごとに実行プログラムを使い分けなくても、JVMが動作する環境なら同じプログラムをどこでも同じように動作させることができる。
Javaバイトコードは仕様が公開されており、RubyプログラムをJavaバイトコードに変換する「Jython」など、他のプログラミング言語のソースコードをJavaバイトコード形式に変換するコンパイラなども存在する。また、ScalaやGroovy、Clojureなどのように、Javaバイトコードに変換してJVM上で実行する方式を標準の実行方式とするJava以外の言語もあり、「JVM言語」と総称される。
(2023.12.16更新)