java.langパッケージは、Javaプログラム言語の基本的なクラスを提供する。java.langパッケージに限り、コンパイラによって暗黙的にimportされるため、明示的にimportする必要はない。

java.langパッケージのクラス
クラス 説明
AssertionError アサーションに失敗したことを表すエラー
Boolean プリミティブ型booleanのラッパークラス
Byte プリミティブ型byteのラッパークラス
Character プリミティブ型charのラッパークラス
CharSequence char値を読むことができる文字シーケンス
ClassLoader クラスのロードを担当する抽象(abstract)クラス
Double プリミティブ型doubleのラッパークラス
Integer プリミティブ型intのラッパークラス
Long プリミティブ型longのラッパークラス
Math 数学
Object クラス階層のルート
Runtime ランタイム
String 変更不可能な文字列
System システム
Thread スレッド
reflect.Method メソッドの情報を取得したり、メソッドを操作するクラス

java.lang.Byteクラス

java.lang.Byteは、プリミティブ型byteの値を表すクラスである。

java.lang.Byteクラスのフィールド
フィールド 説明
static byte MAX_VALUE byteに設定可能な最大値
static byte MIN_VALUE byteに設定可能な最小値
java.lang.Byteクラスのコンストラクタ
コンストラクタ 説明
Byte(byte value ) Byteオブジェクトを作成し、指定した値で初期化する。
Byte(String s ) Byteオブジェクトを作成し、指定した値(文字列表現)で初期化する。
java.lang.Byteクラスのメソッド
戻り値の型 メソッド 説明
static byte parseByte(String s ) 指定した値(10進数の文字列表現)をbyte型の値に変換して返す。
static byte parseByte(String s , int radix ) radix で指定した基数で表現した文字列をbyte型の値に変換して返す。
static Byte Byte(byte b ) Byteインスタンスを作成して、指定した値で初期化する。
static Byte Byte(String s ) Byteインスタンスを作成して、指定した値(10進数の文字列表現)で初期化する。

java.lang.ClassLoaderクラス

java.lang.ClassLoaderクラスは、クラスのロードを担当する抽象(abstract)クラスである。

java.lang.ClassLoaderクラスのコンストラクタ
コンストラクタ 説明
protected ClassLoader() getSystemClassLoaderメソッドによって返されたクラスローダーを親クラスローダーとして使用し、新しいクラスローダーを作成する。
protected ClassLoader(ClassLoader parent ) 指定したクラスろだーを使って、新しいクラスローダーを作成する。
URL url = null;
ClassLoader cl = this.getClass().getClassLoader();
if (null != cl) {
    url = cl.getResorce("sample.properties");
} else {
    url = ClassLoader.getSystemResource("sample.properties");
}

java.lang.Runtime

Runtimeのメソッド
戻り値の型 メソッド 説明
void addShutdownHook(Thread hook ) 新しいVirtual Machineのシャットダウンフックを登録する。
void exit(int status ) 現在実行しているJava仮想マシンを、シャットダウンシーケンスを開始して終了する。
static Runtime getRuntime() 現在のJavaアプリケーションに関連したRuntimeオブジェクトを返す。
void gc() ガベージコレクタを実行する。

すべてのJavaアプリケーションはRuntimeクラスのインスタンスをひとつ持っています。

現在のJavaアプリケーションに関連付けられたランタイム・オブジェクトを取得するには、Runtime.getRuntime()メソッドを使用します。

Javaアプリケーションが終了する際に必ず行いたい処理があれば、シャットダウン・フックを登録します。シャットダウン・フックとは、Java仮想マシンがシャットダウンする際、その通知を受けてスレッドを実行させることです。

Java仮想マシンは、次の2種類のイベントによってシャットダウンします。

仮想マシンシャットダウン・フックを登録するには、Runtime.addShutdownHook()メソッドを使用します。

シャットダウン・フックを登録するJavaソース・コードの例を次に示します。

Runtime runtime = Runtime.getRuntime();
runtime.addShutdownHook(new Thread("Shutdown thread")
  {
    public void run() {
      ...
    }
  }
);

java.lang.StackTraceElementクラス

現在のクラス名、メソッド名、ファイル名および行番号を取得する。

StackTraceElementクラスのメソッド
メソッド 説明
getClassName クラスの完全修飾名を返す。
getFileName ソースファイルの名前を返す。
getLineNumber ソースファイルの行番号を返す。
getMethodName メソッドの名前を返す。
StackTraceElement[] ste = Thread.currentThread().getStackTrace();
String className  = ste[1].getClassName();
String methodName = ste[1].getMethodName();
String fileName   = ste[1].getFileName();
int lineNumber    = ste[1].getLineNumber();

String getClassName()

String getMethodName()

String getFileName()

int getLineNumber()

StringBufferクラス

java.lang.StringBufferクラスは、可変の文字列を扱う文字列バッファクラスである。Stringと似ているが、文字列を変更できる点が異なる。

StringBufferクラスのコンストラクタ
コンストラクタ 説明
StringBuffer() 中身が空の文字列バッファを構築する。
StringBuffer(String str) 引数strで指定した文字列を初期値として持つ文字列バッファを構築する。
StringBufferクラスのメソッド
メソッド 説明
StringBuffer append(String str) 引数strで指定した文字列を、現在の文字列バッファの末尾に追加する。
StringBuffer append(StringBuffer sb) 引数sbで指定した文字列を、現在の文字列バッファの末尾に追加する。
StringBuffer sb = new StringBuffer();
sb.append("first string");
sb.append("next string");

java.lang.Systemクラス

java.lang.Systemクラスのフィールド
フィールド 説明
PrintStream err 標準エラー出力ストリーム
InputStream in 標準入力ストリーム
PrintStream out 標準出力ストリーム
java.lang.Systemのメソッド
戻り値の型 メソッド 説明
static long currentTimeMills() ミリ秒で表される現在の時間を返す。
String getProperty(String key ) 指定したキーのシステムプロパティを返す。

経過時間を取得する例を次に示す。

long t1 = System.currentTimeMills();

// 時間のかかる処理

long t2 = System.currentTimeMills();

System.out.println("Processing time = " + (t2 - t1));

java.lang.Thread

java.lang.Threadのメソッド
メソッド 説明
run() このスレッドが別個のRunnable実行オブジェクトを使用して作成された場合、そのRunnableオブジェクトのrunメソッドが呼び出される。
start() このスレッドの実行を開始する。
sleep(long millis ) 指定したミリ秒数の間、現在実行中のスレッドをスリープさせる。
join() このスレッドが終了するのを待機する。
join(long millis ) このスレッドが終了するのを、最高で millis ミリ秒待機する
getStackTrace スタックダンプを表すスタックトレース要素の配列を返す。

スレッドを作成するには、Threadクラスを継承したクラスを作成します。

class MyThread extends Thread {
  public void run() {
    // 実行する処理
  }
}

このスレッドで実際に行う処理は、run()メソッドをオーバーライドして記述します。

スレッドの実行を開始するには、実行するスレッドのインスタンスを作成して、Thread.start()メソッドを呼び出します。

void start()

スレッドの実行を開始するJavaソース・コードの例を次に示します。

MyThread thread = new MyThread();
thread.start();

スレッドのスリープ

現在実行しているスレッドをスリープさせるには、Thread.sleep()メソッドを使用します。

static void sleep(long millis) throws InterruptedException

引数millisには、スレッドをスリープさせる時間をミリ秒単位で指定します。

現在のスレッドをスリープさせるJavaソース・コードの例を次に示します。

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    e.printStackTrace();
}

スレッドの同期

スレッドの終了を待つには、Thread.join()メソッドを使用します。

void join() throws InterruptedException
void join(long millis) throws InterruptedException

引数millisには、スレッドの終了を待つ時間をミリ秒単位で指定します。

スレッドの終了を永遠に待つJavaソース・コードの例を次に示します。

try {
  thread.join();
} catch (InterruptedException e) {
  e.printStackTrace();
}

run

void run()

start

void start()

sleep

static void sleep(long millis)

join

void join()

void join(long millis)

getStackTrace

StackElement getStackTrace()

スタックダンプを表すスタックトレース要素の配列を返す。

java.lang.reflect.Methodクラス

java.lang.reflect.Methodのメソッド
戻り値の型 メソッド 説明
String getName() このメソッドの名前を返す。
Object invoke(Object obj , Object ... args ) 指定したパラメータを渡して、このメソッドを呼び出す。

Methodクラスは、メソッドの情報を取得したり、メソッドを操作するクラスである。

クラス(オブジェクト)のメソッド名を取得する例を次に示す。

import java.lang.reflect.Method;

class Sample {
    public static void main(String[] args) {
        Sample sample = new Sample();
        Method[] methods = sample.getClass().getMethods();
        for (int i = 0; i < methods.length; i++) {
            System.out.println(methods[i].getName());
        }
    }
}
import java.lang.reflect.Method;

class Sample {
    public static void main(String[] args) {
        Sample sample = new Sample();
        Method[] methods = sample.getClass().getMethods();
        for (int i = 0; i < methods.length; i++) {
            if ("set".equals(SringUtils.mid(methods[i].getName(), 0, 3))) {
                methods[i].invoke(this, new Object { new Boolean(true) });
            }
        }
    }
}
スポンサーリンク