- java.lang.Object
-
- java.util.UUID
-
- すべての実装されたインタフェース:
Serializable
,Comparable<UUID>
public final class UUID extends Object implements Serializable, Comparable<UUID>
不変のUUID (universally unique identifier)を表すクラスです。 UUIDは、128ビット値を表します。これらのグローバル識別子には、さまざまな形式が存在します。 コンストラクタを使用すれば任意の形式のUUIDを作成できますが、このクラスのメソッドはLeach-Salz形式の操作用メソッドです。
形式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
でのみ有効です。versionフィールドには、この
UUID
の型を示す値が含まれます。 UUIDには4種類の基本タイプがあります。時間ベースUUID、DCEセキュリティUUID、名前ベースUUID、およびランダム生成UUIDです。 これらの型は、version値1、2、3、および4をそれぞれ保持します。UUID
の作成に使用されるアルゴリズムなどの詳細については、「RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace」のセクション4.2「Algorithms for Creating a Time-Based UUID」を参照してください。- 導入されたバージョン:
- 1.5
- 関連項目:
- 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 UUID(long mostSigBits, long leastSigBits)
指定されたデータを使用して、新しいUUID
を構築します。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 int
clockSequence()
このUUIDに関連したクロック・シーケンス値int
compareTo(UUID val)
このUUIDを指定されたUUIDと比較します。boolean
equals(Object obj)
このオブジェクトを指定されたオブジェクトと比較します。static UUID
fromString(String name)
toString()
メソッドに説明されているように、文字列標準表現からUUID
を作成します。long
getLeastSignificantBits()
このUUIDの128ビット値の最下位64ビットを返します。long
getMostSignificantBits()
このUUIDの128ビット値の最上位64ビットを返します。int
hashCode()
このUUID
のハッシュ・コードを返します。static UUID
nameUUIDFromBytes(byte[] name)
指定されたバイト配列に基づく、タイプ3 (名前ベース)UUID
取得用のStaticファクトリです。long
node()
このUUIDに関連したノード値static UUID
randomUUID()
タイプ4 (擬似ランダム生成) UUIDを取得するためのstaticファクトリです。long
timestamp()
このUUIDに関連したタイムスタンプ値String
toString()
このUUID
を表すString
オブジェクトを返します。int
variant()
このUUID
に関連付けられた形式番号です。int
version()
このUUID
に関連付けられたバージョン番号です。
-
-
-
メソッドの詳細
-
randomUUID
public static UUID randomUUID()
タイプ4 (擬似ランダム生成) UUIDを取得するためのstaticファクトリ。 このUUID
は、暗号強度の高い擬似乱数ジェネレータを使って生成されます。- 戻り値:
- ランダムに生成された
UUID
-
nameUUIDFromBytes
public static UUID nameUUIDFromBytes(byte[] name)
指定されたバイト配列に基づく、タイプ3 (名前ベース)UUID
取得用のStaticファクトリです。- パラメータ:
name
-UUID
の構築に使用するバイト配列- 戻り値:
- 指定された配列から生成された
UUID
-
fromString
public static UUID fromString(String name)
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
- 戻り値:
- この
UUID
のバージョン番号
-
variant
public int variant()
このUUID
に関連付けられた形式番号です。 形式番号は、このUUID
のレイアウトを示します。 各形式番号の意味を、次に示します。- 0 NCS下位互換性を維持するために予約されている
- 2 IETF RFC 4122 (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
public int hashCode()
このUUID
のハッシュ・コードを返します。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- この
UUID
のハッシュ・コード値 - 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)
このオブジェクトを指定されたオブジェクトと比較します。 結果がtrue
になるのは、引数がnull
ではなく、UUID
オブジェクトであり、このUUID
と同じ形式および同じ値(ビット対ビット)を保持する場合だけです。- オーバーライド:
equals
、クラス:Object
- パラメータ:
obj
-比較対象のオブジェクト- 戻り値:
- オブジェクトが同じである場合は
true
、それ以外の場合はfalse
- 関連項目:
Object.hashCode()
、HashMap
-
compareTo
public int compareTo(UUID val)
このUUIDを指定されたUUIDと比較します。2つのUUIDで異なっている最上位フィールドが、最初のUUIDの方が大きい場合、最初のUUIDが2番目のものより大きいと見なされます。
- 定義:
compareTo
、インタフェース:Comparable<UUID>
- パラメータ:
val
- このUUID
と比較するUUID
- 戻り値:
- この
UUID
がval
より小さい場合は -1、等しい場合は0、大きい場合は1
-
-