HOWTO · Java

Java で GUID を作成する

この記事では、Java で GUID を作成する方法を紹介します

GUID とは

GUID は、Globally Unique Identifier の頭字語です。これは、Universally Unique Identifiers または UUIDs とも呼ばれます。2つの用語の間に真の違いはありません。技術的には、これらは 128 ビットの不変で、一意で、暗号的に強力な乱数です。これらの乱数は、最終的には計算目的で使用されます。このような数値を生成するアルゴリズムは非常に複雑であるため、1 秒あたり 1,0000,000,000 の乱数を生成する可能性があります。これらの数字が繰り返される可能性は低いです。

ソフトウェア開発の実践と方法論では GUID または UUID を使用します。この場合、データベースキー、コンポーネント ID、およびさまざまなトランザクションであるプライマリキーとして一意の ID を使用して巨大なトランザクションを発生させます。

randomUUID() メソッドを使用して UUID を生成するサンプルコード

package guid;

import java.util.UUID;

public class CreateGuid {
  public static void main(String[] args) {
    UUID uuid = UUID.randomUUID();
    System.out.println("UUID = " + uuid.toString());
  }
}

Java 言語では、UUID クラスはバージョン 1.5 以降で使用できます。このクラスは、java.util.UUID パッケージに含まれています。randomUUID() メソッドは、タイプ 4(疑似ランダムに生成された)UUID を取得するための静的ファクトリメソッドです。メソッドは UUID クラスの静的ファクトリメソッドであるため、メソッドを呼び出すにはクラス名が必要です。

上記のプログラムからの出力は、一意に生成された UUID のようです。

UUID = 70aba303-60d8-4cb5-b3e7-4170c4be5642

UUID コンストラクターおよび fromString() メソッドを使用して UUID を生成するサンプルコード:

以下のプログラムでは、UUID クラスコンストラクターを使用して UUID を生成します。コンストラクターは、mostSignificantBitsleastSignificantBits の 2つのパラメーターを取ります。

mostSignificantBits は UUID の最上位 64 ビット用であり、leastSignificantBits は最下位 64 ビット用です。

fromString() メソッドは、文字列の標準表現から UUID を作成する静的ファクトリメソッドです。上記のメソッドは、パラメータとして文字列を取ります。したがって、uuid オブジェクトでは、インライン関数で toString() メソッドが呼び出されます。

名前が toString メソッドで説明されている文字列表現に準拠していない場合、fromString メソッドは IllegalArgumentException をスローします。

package guid;

import java.util.UUID;

public class GenerateGuidUsingConstructor {
  public static void main(String[] args) {
    UUID uuid = new UUID(24, 02);
    System.out.println(UUID.fromString(uuid.toString()));
  }
}

以下は、コンストラクターから生成された UUID の出力です。

00000000-0000-0018-0000-000000000002