树叶云鸿蒙OS教程:鸿蒙OS UUID

UUID

java.lang.Object

|—java.util.UUID

public final class UUID
extends Object
implements Serializable, Comparable<UUID>

表示不可变的通用唯一标识符 (UUID) 的类。 UUID 代表一个 128 位的值。

这些全局标识符存在不同的变体。 此类的方法用于操作 Leach-Salz 变体,尽管构造函数允许创建 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。

构造函数摘要

构造函数描述
UUID(long mostSigBits, long leastSigBits)使用指定的数据构造一个新的 UUID。

方法总结

修饰符和类型方法描述
intclockSequence()与此 UUID 关联的时钟序列值。
intcompareTo(UUID val)将此 UUID 与指定的 UUID 进行比较。
booleanequals(Object obj)将此对象与指定对象进行比较。
static UUIDfromString(String name)根据 toString() 方法中描述的字符串标准表示创建 UUID。
longgetLeastSignificantBits()返回此 UUID 的 128 位值的最低有效 64 位。
longgetMostSignificantBits()返回此 UUID 的 128 位值的最高有效 64 位。
inthashCode()返回此 UUID 的哈希码。
static UUIDnameUUIDFromBytes(byte[] name)基于指定字节数组检索类型 3(基于名称)UUID 的静态工厂。
longnode()与此 UUID 关联的节点值。
static UUIDrandomUUID()用于检索类型 4(伪随机生成)UUID 的静态工厂。
longtimestamp()与此 UUID 关联的时间戳值。
StringtoString()返回表示此 UUID 的 String 对象。
intvariant()与此 UUID 关联的变体编号。
intversion()与此 UUID 关联的版本号。
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

构造函数详细信息

UUID

public UUID(long mostSigBits, long leastSigBits)

使用指定的数据构造一个新的 UUID。 mostSigBits 用于 UUID 的最高有效 64 位,leastSigBits 成为 UUID 的最低有效 64 位。

参数:

参数名称参数描述
mostSigBitsUUID 的最高有效位
leastSigBitsUUID 的最低有效位

方法详情

randomUUID

public static UUID randomUUID()

用于检索类型 4(伪随机生成)UUID 的静态工厂。 UUID 是使用加密强的伪随机数生成器生成的。

返回:

随机生成的 UUID

nameUUIDFromBytes

public static UUID nameUUIDFromBytes(byte[] name)

基于指定字节数组检索类型 3(基于名称)UUID 的静态工厂。

参数:

参数名称参数描述
name用于构造 UUID 的字节数组

返回:

从指定数组生成的 UUID

fromString

public static UUID fromString(String name)

根据 toString() 方法中描述的字符串标准表示创建 UUID。

参数:

参数名称参数描述
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 关联的版本号。 版本号描述了这个 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 字段构成。 生成的时间戳从 UTC 1582 年 10 月 15 日午夜开始以 100 纳秒为单位进行测量。

时间戳值仅在基于时间的 UUID 中有意义,其版本类型为 1。如果此 UUID 不是基于时间的 UUID,则此方法将引发 UnsupportedOperationException。

返回:

此 UUID 的时间戳。

Throws:

Throw名称Throw描述
UnsupportedOperationException如果此 UUID 不是版本 1 UUID

clockSequence

public int clockSequence()

与此 UUID 关联的时钟序列值。

14 位时钟序列值由该 UUID 的时钟序列字段构成。 时钟序列字段用于保证基于时间的 UUID 中的时间唯一性。

clockSequence 值仅在基于时间的 UUID 中有意义,其版本类型为 1。如果此 UUID 不是基于时间的 UUID,则此方法将引发 UnsupportedOperationException。

返回:

此 UUID 的时钟序列

Throws:

Throw名称Throw描述
UnsupportedOperationException如果此 UUID 不是版本 1 UUID

node

public long node()

与此 UUID 关联的节点值。

48 位节点值是根据此 UUID 的节点字段构造的。 此字段旨在保存生成此 UUID 的机器的 IEEE 802 地址,以保证空间唯一性。

节点值仅在基于时间的 UUID 中有意义,其版本类型为 1。如果此 UUID 不是基于时间的 UUID,则此方法将引发 UnsupportedOperationException。

返回:

此 UUID 的节点值

Throws:

Throw名称Throw描述
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"

覆盖:

类 Object 中的 toString

返回:

此 UUID 的字符串表示形式

hashCode

public int hashCode()

返回此 UUID 的哈希码。

覆盖:

类 Object 中的 hashCode

返回:

此 UUID 的哈希码值

equals

public boolean equals(Object obj)

将此对象与指定对象进行比较。 当且仅当参数不为 null、是 UUID 对象、具有相同的变体并且包含与此 UUID 逐位相同的值时,结果才为 true。

覆盖:

类 Object 中的等于

参数:

参数名称参数名称
obj比较对象

返回:

如果对象相同,则为 true; 否则为 false

compareTo

public int compareTo(UUID val)

将此 UUID 与指定的 UUID 进行比较。

如果 UUID 不同的最重要字段对于第一个 UUID 更大,则两个 UUID 中的第一个大于第二个。

指定者:

接口 ComparableUUID 中的 compareTo

参数:

参数名称参数描述
val此 UUID 要与之比较的 UUID

返回:

-1、0 或 1,因为此 UUID 小于、等于或大于 val

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/175468.html<

(0)
运维的头像运维
上一篇2025-03-24 17:37
下一篇 2025-03-24 17:38

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注