Previous | Next | Trail Map | Writing Java Programs | システム資源の使用


その他のシステムメソッド

配列のコピー

配列から別の配列にデータをコピーするには、Sysytem クラスの arraycopy() メソッドを使用する。 arraycopy() メソッドは5つの引数を必要とする。

public static
    void arraycopy(Object source_array,
                   int src_location,
                   Object destination_array,
                   int dest_location,
                   int length,


2つの Object 引数は、コピー元の配列とコピー先の配列を示す。 3つの整数引数は、コピー元の配列、コピー先の配列のそれぞれのコピー開始位置を示す。 次の図ではコピーの例を示す。

次のプログラムは、 copyFrom 配列から copyTo 配列まで要素をコピーするために arraycopy() を使用する。

class ArrayCopyTest {
    public static void main(String args[]) {
        byte copyFrom[] = { 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' };
        byte copyTo[] = new byte[5];

        System.arraycopy(copyFrom, 6, copyTo, 0, 5);
        System.out.println(new String(copyTo, 0));
    }
}

このプログラム例での arraycopy() メソッドの呼び出しは、コピー元の配列の要素番号6からコピーを始める 。配列インデックスは 0 から開始するので、コピーは配列要素「 w 」において始まるので注意すること。 arraycopy() メソッドの呼び出しは、コピー先の配列 copyTo の最初の要素(要素 0 )からコピー先の配列にコピーする要素を置く。 コピーは「w」 、「o」、「r」、「l」、「d」の5つの要素をコピーする。 以下のように効率的に、 arraycopy() メソッドは、以下のように copyFrom の「world」の部分を copyTo にコピーする。

コピー先の配列は、 arraycopy() を呼び出す前に、割り当てられなければならないので注意する。(文が途中?)

現在の時刻の取り込み

currentTimeMillis() メソッドは、00:00:00 UTC 、1970年1月1日からミリ秒で現在の時刻を返す。 一般にcurrentTimeMillis() メソッドは、現在の時刻の取り込み、時間を測定したい操作の実行、再び現在の時刻の取り込みのように、性能テストの間に使用される。2つの時間の差は、操作が実行するために費やしたおおまかな時間の長さである。

しばしばグラフィカルユーザインタフェースでのマウスをクリックする間の時間差は、ユーザがウィンドウをダブルクリックしたかどうかを判定するために使用される。 次のアプレットは、2回のマウスクリック間のミリ秒数を計算するために currentTimeMillis() を使用している。 クリック間の時間が 200 ミリ秒より小さいなら、2回のマウスクリックはダブルクリックと解釈される。


ブラウザはアプレットのタグを理解しない。 実行した場合の TimingIsEverything アプレットの画面表示を示す。


上記に示される TimingIsEverything アプレットのソースである。

現在の日付と時間を計算するために、このメソッドから返り値を使用することができる。 しかし、恐らく Date クラスから現在の日付と時間を得るほうが便利である。


注釈: System クラスの以前のバージョンでは、currentTimeMillis() メソッドに加えて、currentTime()nowMillis()の2つの時間関連のメソッドをサポートする。 これらの2つのメソッドは、今日では時代遅れである。代わりにcurrentTimeMillis() を使用する。 currentTime() nowMillis() はもはやサポートされない。

実行時環境の終了

Java インタプリタを終了するためには、 System.exit() メソッドを呼び出す。 exit() メソッドに整数の終了コードを渡し、インタプリタはその終了コードで終了する。


注釈:  exit() メソッドにより、Java プログラムではなく、Java インタプリタを終了する。特にアプレットでは注意してこの関数を使用する。

セキュリティマネージャの設定と取り込み

セキュリティマネージャは、Java アプリケーションのためにセキュリティ方針を実施するオブジェクトである。System の setSecurityManager() メソッドを使用して、アプリケーションに対する現在のセキュリティマネージャを変更することができる。また、System の getSecurityManager() メソッドを使用して、現在のセキュリティマネージャを取ってくることができる。

ユーザ独自のセキュリティマネージャの提供(in the Networking trail)では、セキュリティマネージャについて詳細に説明し、これらの2つの System メソッドを使用したセキュリティマネージャの作成とインストールの方法を示す。


注釈: アプレットはセキュリティマネージャを変更することができない。 「保留: アプレットはセキュリティマネージャを得られるか?」 アプレットのためのセキュリティマネージャは、アプレットが実行しているアプリケーションにより作成、管理される。

参照

java.lang.SecurityManager


Previous | Next | Trail Map | Writing Java Programs | システム資源の使用