JavaA2Z

KAB-studio > プログラミング > JavaA2Z > Java仮想マシンとは

Java仮想マシン

日本語 ジャバ仮想機械
英語 Java virtual machine
ふりがな じゃばかそうましん
フリガナ ジャバカソウマシン

解説

Javaプログラムを実する環境。
各OSに「実ファイル」として存在する。実後、クラスファイルを読み込み、クラス内のメソッド呼び出しする。
その際、プログラムからは「実されたPCのOS」ではなく「仮に作られたOS」で実されたかのように見える。メモリやCPUの見掛け上の挙動は「仮想マシン」という特別に作られた環境によってみせかけられ、結果、プログラムは「自分が実されたOS」を考慮する必要がなくなり、プログラムはOSに依存しなくなる。OSに依存する箇所は仮想マシンが本当のOSとの仲介役となる。
ただし、仮想マシンはすべて覆い隠せるわけではなく、OSに依存したプログラムが必要な場合もある。また、それぞれのOSが持つ機能を直接呼び出す方法もある。
マシンの性能が低い場合、仮想マシンが仲介役となるため処理が重くなることがある。Javaが当初は広まらなかった理由のひとつでもある。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // int 型変数のビットを出力します。
        int i = 255;
        StringBuffer strbuf = new StringBuffer();
        // 全ビットを右からチェックします。
        forint iF1 = 0; iF1 < 32; ++iF1 )
        {
            // 取得した順に出力すると逆順になるので、
            // 取得した値を頭に挿入していきます。
            strbuf.insert( 0, i & 1 );
            // 右にひとつビットシフトします。
            i = i >> 1;
        }

        // 出力。
        System.out.println( strbuf );
        // 00000000000000000000000011111111
        // もし、メモリやCPUがOSに依存している場合、
        // このビットの並びはOSのバイトオーダーに
        // 依存します。ですが、Javaでは、仮想マシンが
        // 「バイトオーダーはビッグエンディアン」と
        // 決めているため、プログラムは実行されるOSを
        // 気にすることなく「ビッグエンディアンで並ぶ」
        // と決めつけて書くことができます。これが、
        // Javaプログラムが仮想マシン上で動くメリットの
        // ひとつです。
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // int 型変数のビットを出力します。
        int i = 255;
        StringBuffer strbuf = new StringBuffer();
        // 全ビットを右からチェックします。
        for( int iF1 = 0; iF1 < 32; ++iF1 )
        {
            // 取得した順に出力すると逆順になるので、
            // 取得した値を頭に挿入していきます。
            strbuf.insert( 0, i & 1 );
            // 右にひとつビットシフトします。
            i = i >> 1;
        }

        // 出力。
        System.out.println( strbuf );
        // 00000000000000000000000011111111
        // もし、メモリやCPUがOSに依存している場合、
        // このビットの並びはOSのバイトオーダーに
        // 依存します。ですが、Javaでは、仮想マシンが
        // 「バイトオーダーはビッグエンディアン」と
        // 決めているため、プログラムは実行されるOSを
        // 気にすることなく「ビッグエンディアンで並ぶ」
        // と決めつけて書くことができます。これが、
        // Javaプログラムが仮想マシン上で動くメリットの
        // ひとつです。
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

  • (参照している単語はありません)
はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2006/02/01
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。