UUID は、コンピュータ システムで広く使用されている 128 ビット長の一意の識別番号です。 4 つのハイフンで区切られた 16 進数で構成されます。このセクションでは、次のことについて説明します。 UUIDとは何ですか そして Java で UUID (バージョン 4) をランダムに生成する方法 。
UUID
UUID を意味する 普遍的に一意の識別子 。 UUID は Open Software Foundation (OSF) によって標準化されています。これは、分散コンピューティング環境 (DCE) の一部です。 UUID は 36 文字 (128 ビット) の長さの一意の番号です。としても知られています グローバル一意識別子 (GUID)。
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