java.langパッケージ

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

目次

  1. 1 インタフェース
    1. 1.1 Appendable
    2. 1.2 CharSequence
    3. 1.3 Comparable<T>
  2. 2 クラス
    1. 2.1 AssertionError
    2. 2.2 Boolean
    3. 2.3 Byte
    4. 2.4 Character
    5. 2.5 CharSequence
    6. 2.6 ClassLoader
    7. 2.7 Double
    8. 2.8 Enum
    9. 2.9 Integer
    10. 2.10 Long
    11. 2.11 Math
    12. 2.12 Object
    13. 2.13 Runtime
    14. 2.14 String
    15. 2.15 StringBuffer
    16. 2.16 System
    17. 2.17 StackTraceElement
    18. 2.18 Thread
    19. 2.19 reflect.Method

java.lang.ClassLoader

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

ClassLoaderのコンストラクタで新しいクラスローダーを作成できる。

protected ClassLoader()

指定したクラスローダーを使って、新しいクラスローダーを作成することもできる。

protected ClassLoader(ClassLoader parent)

継承

java.lang.Object
└─ java.lang.ClassLoader

使用例

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

Java.lang.Runtime は、Java アプリケーションとアプリケーション実行環境のインタフェースになるクラスである。アプリケーション実行環境とは、Java 仮想マシンと OS のことである。

アプリケーションは Runtime クラスの単一のインスタンスを持ち、そのインスタンスは Runtime.getRuntime メソッドで取得できる。アプリケーションは別のインスタンスを生成することはできない。

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

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

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

継承

java.lang.Object
└─ java.lang.Runtime

使用例

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

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

java.lang.StackTraceElement

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

継承

java.lang.Object
└─ 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()

java.lang.System

java.lang.System はシステムの機能を提供するクラスである。

public final class System extends Object

継承

java.lang.Object
└─ java.lang.System

コンストラクタ

java.lang.System クラスはコンストラクタを提供しておらず、インスタンス化できない。そのため、System クラスの全てのフィールド及びメソッドは static であり、インスタンス化せずに使用できる。

フィールド

System.err

標準エラー出力ストリーム

static PrintStream err

System.in

標準入力ストリーム

static InputStream in

System.out

標準出力ストリーム

static PrintStream out

メソッド

System.arraycopy

配列をコピーする。

static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

System.currentTimeMills

ミリ秒で表される現在の時間を返す。

static long currentTimeMills()

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

long t1 = System.currentTimeMills();

// 時間のかかる処理

long t2 = System.currentTimeMills();

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

java.lang.Systemには次に示すがある。

System.getProperty

指定したキーのシステムプロパティを返す。

String getProperty(String key)

java.lang.Thread

継承

java.lang.Object
└─ 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.Object
└─ java.lang.reflect.AccessibleObject
   └─ java.lang.reflect.Executable
      └─ 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) });
      }
    }
  }
}