クラスUUID
- すべての実装されたインタフェース:
Serializable, Comparable<UUID>
このクラスは、主にLeach-SalzバリアントのUUIDを操作するために設計されていますが、他のバリアントのUUIDの作成もサポートしています。
形式2 (Leach-Salz) UUIDのレイアウトは、次のとおりです。最上位のlongは、次の符号なしフィールドで構成されます。
0xFFFFFFFF00000000 time_low 0x00000000FFFF0000 time_mid 0x000000000000F000 version 0x0000000000000FFF time_hi最下位のlongは、次の符号なしフィールドで構成されます。
0xC000000000000000 variant 0x3FFF000000000000 clock_seq 0x0000FFFFFFFFFFFF node
variantフィールドには、UUIDのレイアウトを識別する値が含まれます。 前述のビット・レイアウトは、Leach-Salz形式を示す形式値2を保持する UUIDでのみ有効です。
UUIDを作成するためのUUID形式、レイアウト、アルゴリズムなど、完全な仕様については、 RFC 9562: Universally Unique Identifier (UUID)を参照してください。
UUIDには、それぞれバージョン番号で識別される8つの定義済タイプがあります。時間ベース(バージョン1)、DCEセキュリティ(バージョン2)、MD5を使用した名前ベース(バージョン3)、ランダムに生成された名前ベース(バージョン4)、SHA-1を使用した名前ベース(バージョン5)、時間ベースの順序変更(バージョン6)、Unixエポックの時間ベース(バージョン7)およびカスタム定義のレイアウト(バージョン8)です。
- 導入されたバージョン:
- 1.5
- 外部仕様
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明intこのUUIDに関連したクロック・シーケンス値intこのUUIDを指定されたUUIDと比較します。booleanこのオブジェクトを指定されたオブジェクトと比較します。static UUIDfromString(String name) toString()メソッドに説明されているように、文字列標準表現からUUIDを作成します。longこのUUIDの128ビット値の最下位64ビットを返します。longこのUUIDの128ビット値の最上位64ビットを返します。inthashCode()このUUIDのハッシュ・コードを返します。static UUIDnameUUIDFromBytes(byte[] name) 指定されたバイト配列に基づく、タイプ3 (名前ベース)UUID取得用のStaticファクトリです。longnode()このUUIDに関連したノード値static UUIDofEpochMillis(long timestamp) 指定されたUnixエポック・タイムスタンプからタイプ7 UUID (UUIDv7)UUIDを作成します。static UUIDタイプ4 (擬似ランダム生成) UUIDを取得するためのstaticファクトリ。longこのUUIDに関連したタイムスタンプ値toString()このUUIDを表すStringオブジェクトを返します。intvariant()このUUIDに関連付けられた形式番号です。intversion()このUUIDに関連付けられたバージョン番号です。クラスオブジェクトで宣言されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
コンストラクタの詳細
-
UUID
public UUID(long mostSigBits, long leastSigBits) 指定されたデータを使用して新しいUUIDを構築します。mostSigBitsはUUIDの最上位64ビットに使用され、leastSigBitsはUUIDの最下位64ビットになります。- パラメータ:
mostSigBits-UUIDの最上位ビットleastSigBits-UUIDの最下位ビット
-
-
メソッドの詳細
-
randomUUID
public static UUID randomUUID()タイプ4 (擬似ランダム生成) UUIDを取得するためのstaticファクトリ。 このUUIDは、暗号強度の高い擬似乱数ジェネレータを使って生成されます。- 戻り値:
- ランダムに生成された
UUID
-
nameUUIDFromBytes
public static UUID nameUUIDFromBytes(byte[] name) 指定されたバイト配列に基づく、タイプ3 (名前ベース)UUID取得用のStaticファクトリです。- パラメータ:
name-UUIDの構築に使用するバイト配列- 戻り値:
- 指定された配列から生成された
UUID
-
ofEpochMillis
public static UUID ofEpochMillis(long timestamp) 指定されたUnixエポック・タイムスタンプからタイプ7 UUID (UUIDv7)UUIDを作成します。 返されるUUIDには、最初の6バイトに指定されたtimestampが続き、UUIDv7を表すバージョンおよびバリアント・ビットが続き、残りのバイトには暗号学的に強力な擬似乱数ジェネレータからのランダム・データが含まれます。- APIのノート:
UUIDv7値は、最上位の48ビットにUnixタイムスタンプをミリ秒単位で割り当て、必要なバージョン(4ビット)とバリアント(2ビット)を割り当て、残りの74ビットをランダム・ビットで埋めることによって作成されます。 そのため、このメソッドは、48ビットに収まらないtimestamp値を拒否します。単調性(後続の各値が最後より大きい)は、
UUIDv7値の主要な特性です。 これは、timestamp値がUUIDの一部であるためです。 モノトニックUUIDv7値を生成するこのメソッドのコール元は、指定されたtimestamp値が単調であることを確認する必要があります。- パラメータ:
timestamp- 1970年1月1日(UTC)午前0時以降の、うるう秒数。- 戻り値:
- 指定された
timestampを使用して構築されたUUID - スロー:
IllegalArgumentException- タイムスタンプが負または(1L << 48) - 1より大きい場合- 導入されたバージョン:
- 26
-
fromString
toString()メソッドに説明されているように、文字列標準表現からUUIDを作成します。- パラメータ:
name-UUIDを指定する文字列- 戻り値:
- 指定値を使用した
UUID - スロー:
IllegalArgumentException- 名前がtoString()の文字列表現に準拠していない場合
-
getLeastSignificantBits
public long getLeastSignificantBits()このUUIDの128ビット値の最下位64ビットを返します。- 戻り値:
- このUUIDの128ビット値の最下位64ビット
-
getMostSignificantBits
public long getMostSignificantBits()このUUIDの128ビット値の最上位64ビットを返します。- 戻り値:
- このUUIDの128ビット値の最上位64ビット
-
version
public int version()このUUIDに関連付けられたバージョン番号です。 バージョン番号は、このUUIDの生成方法を示します。 各バージョン番号の意味を、次に示します。- 1時間ベースのUUID
- 2 DCEセキュリティUUID
- 3名前ベースのUUID
- 4ランダムに生成されたUUID
- 7 Unixエポック時間ベースのUUID
- 戻り値:
- この
UUIDのバージョン番号
-
variant
public int variant()このUUIDに関連付けられた形式番号です。 形式番号は、このUUIDのレイアウトを示します。 各形式番号の意味を、次に示します。- 0 NCS下位互換性を維持するために予約されている
- 2 IETF RFC 9562 (Leach-Salz)。このクラスが使用
- 6予約済み。Microsoft Corporationの下位互換性維持
- 7将来の定義のために予約済み
- 戻り値:
- この
UUIDの形式番号
-
timestamp
public long timestamp()このUUIDに関連したタイムスタンプ値60ビットのタイムスタンプ値が、この
UUIDのtime_low、time_mid、およびtime_hiフィールドから構築されます。 結果として得られるタイムスタンプは、1582年10月15日UTCの深夜零時から100ナノ秒単位で計測された値になります。タイムスタンプ値は、時間ベースのUUID (バージョン・タイプ1)でのみ有意性があります。 この
UUIDが時間ベースのUUIDではない場合、このメソッドはUnsupportedOperationExceptionをスローします。- 戻り値:
- この
UUIDのタイムスタンプ。 - スロー:
UnsupportedOperationException- このUUIDがバージョン1 UUIDではない場合
-
clockSequence
public int clockSequence()このUUIDに関連したクロック・シーケンス値14ビットのクロック・シーケンス値は、このUUIDのクロック・シーケンス・フィールドから構築されます。 クロック・シーケンス・フィールドは、時間ベースUUIDの一時的な一意性を保証するために使用されます。
clockSequence値は、時間ベースのUUID (バージョン・タイプ1)でのみ有意性があります。 このUUIDが時間ベースのUUIDではない場合、このメソッドはUnsupportedOperationExceptionをスローします。- 戻り値:
- この
UUIDのクロック・シーケンス - スロー:
UnsupportedOperationException- このUUIDがバージョン1 UUIDではない場合
-
node
public long node()このUUIDに関連したノード値48ビットのノード値は、このUUIDのノード・フィールドから構築されます。 このフィールドは、空間の一意性を保証するため、このUUIDを生成したマシンのIEEE 802アドレスを保持することを目的としています。
ノード値は、時間ベースのUUID (バージョン・タイプ1)でのみ有意性があります。 このUUIDが時間ベースのUUIDではない場合、このメソッドはUnsupportedOperationExceptionをスローします。
- 戻り値:
- この
UUIDのノード値 - スロー:
UnsupportedOperationException- このUUIDがバージョン1 UUIDではない場合
-
toString
public String toString()このUUIDを表すStringオブジェクトを返します。UUID文字列表現は、次のBNFで記述されるとおりです。
UUID = <time_low> "-" <time_mid> "-" <time_high_and_version> "-" <variant_and_sequence> "-" <node> time_low = 4*<hexOctet> time_mid = 2*<hexOctet> time_high_and_version = 2*<hexOctet> variant_and_sequence = 2*<hexOctet> node = 6*<hexOctet> hexOctet = <hexDigit><hexDigit> hexDigit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F" -
hashCode
-
equals
-
compareTo
public int compareTo(UUID val) このUUIDを指定されたUUIDと比較します。2つのUUIDで異なっている最上位フィールドが、最初のUUIDの方が大きい場合、最初のUUIDが2番目のものより大きいと見なされます。
- 定義:
compareTo、インタフェースComparable<UUID>- パラメータ:
val- このUUIDと比較するUUID- 戻り値:
- この
UUIDがvalより小さい場合は -1、等しい場合は0、大きい場合は1
-