新聞中心
UUID

java.lang.Object
|---java.util.UUID
public final class UUID
extends Object
implements Serializable, Comparable表示不可變的通用唯一標識符 (UUID) 的類。 UUID 代表一個 128 位的值。
這些全局標識符存在不同的變體。 此類的方法用于操作 Leach-Salz 變體,盡管構造函數(shù)允許創(chuàng)建 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變量字段包含一個標識 UUID 布局的值。 上述位布局僅對變體值為 2 的 UUID 有效,表示 Leach-Salz 變體。
version 字段包含一個描述此 UUID 類型的值。 UUID 有四種不同的基本類型:基于時間、DCE 安全、基于名稱和隨機生成的 UUID。 這些類型的版本值分別為 1、2、3 和 4。
構造函數(shù)摘要
| 構造函數(shù) | 描述 |
|---|---|
| UUID(long mostSigBits, long leastSigBits) | 使用指定的數(shù)據構造一個新的 UUID。 |
方法總結
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| int | clockSequence() | 與此 UUID 關聯(lián)的時鐘序列值。 |
| int | compareTo(UUID val) | 將此 UUID 與指定的 UUID 進行比較。 |
| boolean | equals(Object obj) | 將此對象與指定對象進行比較。 |
| static UUID | fromString(String name) | 根據 toString() 方法中描述的字符串標準表示創(chuàng)建 UUID。 |
| long | getLeastSignificantBits() | 返回此 UUID 的 128 位值的最低有效 64 位。 |
| long | getMostSignificantBits() | 返回此 UUID 的 128 位值的最高有效 64 位。 |
| int | hashCode() | 返回此 UUID 的哈希碼。 |
| static UUID | nameUUIDFromBytes(byte[] name) | 基于指定字節(jié)數(shù)組檢索類型 3(基于名稱)UUID 的靜態(tài)工廠。 |
| long | node() | 與此 UUID 關聯(lián)的節(jié)點值。 |
| static UUID | randomUUID() | 用于檢索類型 4(偽隨機生成)UUID 的靜態(tài)工廠。 |
| long | timestamp() | 與此 UUID 關聯(lián)的時間戳值。 |
| String | toString() | 返回表示此 UUID 的 String 對象。 |
| int | variant() | 與此 UUID 關聯(lián)的變體編號。 |
| int | version() | 與此 UUID 關聯(lián)的版本號。 |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
構造函數(shù)詳細信息
UUID
public UUID(long mostSigBits, long leastSigBits)
使用指定的數(shù)據構造一個新的 UUID。 mostSigBits 用于 UUID 的最高有效 64 位,leastSigBits 成為 UUID 的最低有效 64 位。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| mostSigBits | UUID 的最高有效位 |
| leastSigBits | UUID 的最低有效位 |
方法詳情
randomUUID
public static UUID randomUUID()
用于檢索類型 4(偽隨機生成)UUID 的靜態(tài)工廠。 UUID 是使用加密強的偽隨機數(shù)生成器生成的。
返回:
隨機生成的 UUID
nameUUIDFromBytes
public static UUID nameUUIDFromBytes(byte[] name)
基于指定字節(jié)數(shù)組檢索類型 3(基于名稱)UUID 的靜態(tài)工廠。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| name | 用于構造 UUID 的字節(jié)數(shù)組 |
返回:
從指定數(shù)組生成的 UUID
fromString
public static UUID fromString(String name)
根據 toString() 方法中描述的字符串標準表示創(chuàng)建 UUID。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| name | 指定 UUID 的字符串 |
返回:
具有指定值的 UUID
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果 name 不符合 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 關聯(lián)的版本號。 版本號描述了這個 UUID 是如何生成的。 版本號的含義如下:
- 1 基于時間的 UUID
- 2 DCE 安全 UUID
- 3 基于名稱的 UUID
- 4 隨機生成的UUID
返回:
此 UUID 的版本號
variant
public int variant()
與此 UUID 關聯(lián)的變體編號。 變體編號描述了 UUID 的布局。 變體編號具有以下含義:
- 0 為 NCS 向后兼容保留
- 2 IETF RFC 4122 (Leach-Salz),被這個類使用
- 6 保留,Microsoft Corporation 向后兼容
- 7 保留供將來定義
返回:
此 UUID 的變體編號
timestamp
public long timestamp()
與此 UUID 關聯(lián)的時間戳值。
60 位時間戳值由該 UUID 的 time_low、time_mid 和 time_hi 字段構成。 生成的時間戳從 UTC 1582 年 10 月 15 日午夜開始以 100 納秒為單位進行測量。
時間戳值僅在基于時間的 UUID 中有意義,其版本類型為 1。如果此 UUID 不是基于時間的 UUID,則此方法將引發(fā) UnsupportedOperationException。
返回:
此 UUID 的時間戳。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此 UUID 不是版本 1 UUID |
clockSequence
public int clockSequence()
與此 UUID 關聯(lián)的時鐘序列值。
14 位時鐘序列值由該 UUID 的時鐘序列字段構成。 時鐘序列字段用于保證基于時間的 UUID 中的時間唯一性。
clockSequence 值僅在基于時間的 UUID 中有意義,其版本類型為 1。如果此 UUID 不是基于時間的 UUID,則此方法將引發(fā) UnsupportedOperationException。
返回:
此 UUID 的時鐘序列
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此 UUID 不是版本 1 UUID |
node
public long node()
與此 UUID 關聯(lián)的節(jié)點值。
48 位節(jié)點值是根據此 UUID 的節(jié)點字段構造的。 此字段旨在保存生成此 UUID 的機器的 IEEE 802 地址,以保證空間唯一性。
節(jié)點值僅在基于時間的 UUID 中有意義,其版本類型為 1。如果此 UUID 不是基于時間的 UUID,則此方法將引發(fā) UnsupportedOperationException。
返回:
此 UUID 的節(jié)點值
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此 UUID 不是版本 1 UUID |
toString
public String toString()
返回表示此 UUID 的 String 對象。
UUID 字符串表示如下 BNF 所述:
UUID = "-" "-"
"-"
"-"
time_low = 4*
time_mid = 2*
time_high_and_version = 2*
variant_and_sequence = 2*
node = 6*
hexOctet =
hexDigit =
"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
| "a" | "b" | "c" | "d" | "e" | "f"
| "A" | "B" | "C" | "D" | "E" | "F" 覆蓋:
類 Object 中的 toString
返回:
此 UUID 的字符串表示形式
hashCode
public int hashCode()
返回此 UUID 的哈希碼。
覆蓋:
類 Object 中的 hashCode
返回:
此 UUID 的哈希碼值
equals
public boolean equals(Object obj)
將此對象與指定對象進行比較。 當且僅當參數(shù)不為 null、是 UUID 對象、具有相同的變體并且包含與此 UUID 逐位相同的值時,結果才為 true。
覆蓋:
類 Object 中的等于
參數(shù):
| 參數(shù)名稱 | 參數(shù)名稱 |
|---|---|
| obj | 比較對象 |
返回:
如果對象相同,則為 true; 否則為 false
compareTo
public int compareTo(UUID val)
將此 UUID 與指定的 UUID 進行比較。
如果 UUID 不同的最重要字段對于第一個 UUID 更大,則兩個 UUID 中的第一個大于第二個。
指定者:
接口 ComparableUUID 中的 compareTo
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| val | 此 UUID 要與之比較的 UUID |
返回:
-1、0 或 1,因為此 UUID 小于、等于或大于 val
新聞標題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSUUID
文章位置:http://m.fisionsoft.com.cn/article/cdhjhes.html


咨詢
建站咨詢
