public final class UUID extends Object implements Serializable, Comparable<UUID>
これらのグローバル識別子には、さまざまな形式が存在します。コンストラクタを使用すれば任意の形式の 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」を参照してください。
コンストラクタと説明 |
---|
UUID(long mostSigBits, long leastSigBits)
指定されたデータを使用して、新しい
UUID を構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
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 に関連付けられたバージョン番号です。 |
public UUID(long mostSigBits, long leastSigBits)
UUID
を構築します。UUID
の最上位 64 ビットには mostSigBits
が使用されます。leastSigBits
は、UUID
の最下位 64 ビットになります。mostSigBits
- UUID
の最上位ビットleastSigBits
- UUID
の最下位ビットpublic static UUID randomUUID()
UUID
は、暗号強度の高い擬似乱数ジェネレータを使って生成されます。UUID
public static UUID nameUUIDFromBytes(byte[] name)
UUID
取得用の Static ファクトリです。name
- UUID
の構築に使用するバイト配列UUID
public static UUID fromString(String name)
toString()
メソッドに説明されているように、文字列標準表現から UUID
を作成します。name
- UUID
を指定する文字列UUID
IllegalArgumentException
- 名前が toString()
の文字列表現に準拠していない場合public long getLeastSignificantBits()
public long getMostSignificantBits()
public int version()
UUID
に関連付けられたバージョン番号です。バージョン番号は、この UUID
の生成方法を示します。
各バージョン番号の意味を、次に示します。
UUID
のバージョン番号public int variant()
UUID
に関連付けられた形式番号です。形式番号は、この UUID
のレイアウトを示します。
各形式番号の意味を、次に示します。
UUID
の形式番号public long timestamp()
60 ビットのタイムスタンプ値が、この UUID
の time_low、time_mid、および time_hi フィールドから構築されます。結果として得られるタイムスタンプは、1582 年 10 月 15 日 UTC の深夜零時から 100 ナノ秒単位で計測された値になります。
タイムスタンプ値は、時間ベースの UUID (バージョンタイプ 1) でのみ有意性があります。この UUID
が時間ベースの UUID ではない場合、このメソッドは UnsupportedOperationException をスローします。
UnsupportedOperationException
- この UUID がバージョン 1 UUID ではない場合public int clockSequence()
14 ビットのクロックシーケンス値は、この UUID のクロックシーケンスフィールドから構築されます。クロックシーケンスフィールドは、時間ベース UUID の一時的な一意性を保証するために使用されます。
clockSequence
値は、時間ベースの UUID (バージョンタイプ 1) でのみ有意性があります。この UUID が時間ベースの UUID ではない場合、このメソッドは UnsupportedOperationException をスローします。
UUID
のクロックシーケンスUnsupportedOperationException
- この UUID がバージョン 1 UUID ではない場合public long node()
48 ビットのノード値は、この UUID のノードフィールドから構築されます。このフィールドは、空間の一意性を保証するため、この UUID を生成したマシンの IEEE 802 アドレスを保持することを目的としています。
ノード値は、時間ベースの UUID (バージョンタイプ 1) でのみ有意性があります。この UUID が時間ベースの UUID ではない場合、このメソッドは UnsupportedOperationException をスローします。
UUID
のノード値UnsupportedOperationException
- この UUID がバージョン 1 UUID ではない場合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"
public int hashCode()
UUID
のハッシュコードを返します。hashCode
、クラス: Object
UUID
のハッシュコード値Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
true
になるのは、引数が null
ではなく、UUID
オブジェクトであり、この UUID
と同じ形式および同じ値 (ビット対ビット) を保持する場合だけです。equals
、クラス: Object
obj
-比較対象のオブジェクトtrue
、それ以外の場合は false
Object.hashCode()
、HashMap
public int compareTo(UUID val)
2 つの UUID で異なっている最上位フィールドが、最初の UUID の方が大きい場合、最初の UUID が 2 番目のものより大きいと見なされます。
compareTo
、インタフェース: Comparable<UUID>
val
- この UUID
と比較する UUID
UUID
が val
より小さい場合は -1、等しい場合は 0、大きい場合は 1 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.