Java

Java はオラクル社が開発している汎用プログラミング言語です。

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)クラスである。

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

protected ClassLoader()

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

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

すべての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.text.Format

java.text.Format クラスは、DecimalFormat や SimpleDateFormat など、さまざまなフォーマットクラスの基底となる。

抽象(abstract)クラスなので、インスタンス化できない。

フォーマットクラスを自作するときに、基底クラスとして利用できる。

import java.text.Format;

class MyCustomFormat extends Format
{
  // フォーマットの実装
}

java.text.DecimalFormat

java.text.DecimalFormatは、10進数をフォーマットするクラスである。

整数、固定小数値、科学表記法、パーセンテージ及び通貨などのさまざまな種類の数値をサポートしている。

import java.text.DecimalFormat;

public class Example {
  public static void main(String[] args) {
    DecimalFormat fomatter = new DecimalFormat("\u00A5###,###");
    String converted = formatter.format(Double.parseDouble("1000"));
    System.out.println(converted);
  }
}

java.util.ArrayList

java.util.ArrayList<E>のコンストラクタは初期サイズとして、要素を10個格納できるArrayListを作成する。Eにはクラス名を指定する。EにはJava変数の基本型を指定することはできない。基本型のArrayListを作成したい場合は、Java変数の基本型に対応したラッパークラスを指定する。

Java変数の基本型に対応するクラス
基本型 クラス
boolean java.lang.Boolean
byte java.lang.Byte
char java.lang.Character
short java.lang.Short
int java.lang.Integer
long java.lang.Long
float java.lang.Float
double java.lang.Double
ArrayList<Integer> intArray = new ArrayList<Integer>();
ArrayList<String> strArray = new ArrayList<String>();

ArrayListに値を格納するにはaddメソッドを使用する。

public boolean add(E o)

指定した要素をリストの最後に追加する。

java.util.Properties

プロパティファイルとは、様々な設定値を格納したテキストファイルのことです。テキストファイルの中身は「プロパティ=値」の形式で記述します。例として、プロパティファイル sample.properties の中身を次に示します。

host=localhost
port=9199
user=scott
password=tiger

プロパティを表すクラスとしてPropertiesクラスがあります。loadメソッドを用いてプロパティファイルを読み込みます。必要なプロパティの値はgetPropertyメソッドで取得することができます。

Properties p = new Properties();
FileInputStream fis = new FileInputStream("sample.properties");
p.load(fis);
String host = p.getProperty("host");

プロパティファイルを配置するディレクトリは、Javaのクラスパスに設定しなければなりません。

java.util.Random

乱数を生成するには、Random クラスのインスタンスを生成して、各種メソッドを呼び出します。

乱数を生成するメソッドは、生成する数の型によっていろいろ用意されています。

int 型の乱数を生成するには、Random.nextInt() メソッドを使用します。

int nextInt(int n)

0以上 n 未満の乱数を戻します。生成される数は整数です。

double 型の乱数を生成するには、Random.nextDouble() メソッドを使用します。

double nextDouble()

0以上1.0未満の乱数を戻します。生成される数は実数です。

boolean 型の乱数を生成するには、Random.nextBoolean() メソッドを使用します。

boolean nextBoolean()

true または false をランダムに戻します。

0から99までの乱数を生成するJavaソースコードの例を次に示します。

Random random = new Random();
int n = random.nextInt(100);

java.util.Random クラス以外にも、java.lang.Math クラスの random() メソッドを使用して乱数を生成することができます。こちらは static なスレッドのため、クラスをインスタンス化する必要はありません。