logo

Java 生成 UUID

UUID は、コンピュータ システムで広く使用されている 128 ビット長の一意の識別番号です。 4 つのハイフンで区切られた 16 進数で構成されます。このセクションでは、次のことについて説明します。 UUIDとは何ですか そして Java で UUID (バージョン 4) をランダムに生成する方法

UUID

UUID を意味する 普遍的に一意の識別子 。 UUID は Open Software Foundation (OSF) によって標準化されています。これは、分散コンピューティング環境 (DCE) の一部です。 UUID は 36 文字 (128 ビット) の長さの一意の番号です。としても知られています グローバル一意識別子 (GUID)。

Java 生成 UUID

UUID の使用は、状況、ユースケース、複雑さ、および条件によって異なります。 UUID の用途には次のようなものがあります。

  • 一意の URN (Uniform Resource Name) を生成するために使用されます。
  • トランザクション ID の生成にも使用できます。
  • 暗号化アプリケーションで広く使用されています。
  • Web アプリケーションでは、セッション ID の生成に使用できます。

UUIDの種類

UUID には 4 つのタイプがあります。

  • 時間ベースの UUID (バージョン 1)
  • DCE セキュリティ UUID (バージョン 2)
  • 名前ベースの UUID (バージョン 3 および 5)
  • ランダムに生成された UUID (バージョン 4)

UUIDのバリアント

UUID にはさまざまなバリエーションがありますが、 浸出塩 バリアントが広く使用されています。バリアント 2 のレイアウト、つまり 浸出塩 以下のとおりであります:

MSB は次の符号なしフィールドで構成されます。

0xFFFFFFFF00000000 時間_低

0x00000000FFFF0000 time_mid

0x000000000000F000 バージョン

0x0000000000000FFF time_hi

LSB は次の符号なしフィールドで構成されます。

0xC000000000000000 バリアント

0x3FFF000000000000 クロックシーケンス

0x0000FFFFFFFFFFFF ノード

バリアント フィールドには、UUID のレイアウトを識別する値が保持されます。上で説明したレイアウトは、バリアント 2 にのみ有効です。

Java UUID クラス

を生成するために、 UUID 、Java プログラミング言語は UUID クラスを提供します。クラスが所属するのは java.util パッケージ。 Object クラスを拡張し、 シリアル化可能 そして 匹敵します インターフェース。このクラスは、128 ビット値を表す不変の UUID を生成します。

Java UUID クラスのメソッド

メソッド 説明
クロックシーケンス() この指定された UUID に関連付けられたクロック シーケンス値を返します。
比較対象() このメソッドは、UUID を特定の UUID と比較します。
等しい() このメソッドは、このオブジェクトを指定されたオブジェクトと比較します。
fromString() 文字列表現から UUID を生成します。
getLeastSignificantBits() この UUID の 128 ビット値の最下位 64 ビットを返します。
getMostSignificantBits() この UUID の 128 ビット値の最上位 64 ビットを返します。
ハッシュコード() この UUID のハッシュ コードを返します。
nameUUIDFromBytes() 指定されたバイト配列に基づいてバージョン 3 (名前ベース) UUID を取得します。
ノード() 指定された UUID に関連付けられたノード値を返します。
ランダムUUID() ランダムに生成された UUID を返します。
タイムスタンプ() この指定された UUID に関連付けられたタイムスタンプ値を返します。
toString() この UUID を表す String オブジェクトを返します。
変異体() 指定された UUID に関連付けられたバリアントを取得するために使用されます。
バージョン() 指定された UUID に関連付けられたバージョン番号を取得できます。

UUIDの生成

次の例では、ランダムな UUID を生成します。

UUIDExample.java

 import java.util.UUID; public class UUIDExample { public static void main(String args[]) { //generates random UUID UUID uuid=UUID.randomUUID(); System.out.println(uuid); } } 

出力:

 2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89 

文字列から UUID への変換

StringToUUIDExample.java

 import java.util.UUID; public class StringtoUUIDExample { public static void main(String args[]) { //randomly generates a UUID UUID uuid = UUID.randomUUID(); System.out.println('Randomly Generated UUID: '+uuid); //converts the randomly generated UUID into String String uuidAsString = uuid.toString(); System.out.println('UUID as String: '+uuidAsString); //generates a UUID from the String UUID sameUuid = UUID.fromString(uuidAsString); System.out.println('UUID from String: '+sameUuid); //compares UUID generated from the string with the randomly generated UUID System.out.println(sameUuid.equals(uuid)); } } 

出力:

 Randomly Generated UUID: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID as String: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID from String: fe8a03d7-6495-4231-9843-8ee2f5282620 true