树叶云鸿蒙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

相关推荐

  • 物理服务器BIOS模式如何切换,操作步骤有哪些?

    物理服务器BIOS模式切换,本质上是通过重启进入BIOS设置界面,在Boot Mode选项中从Legacy改选为UEFI(或反之),并保存退出,理解BIOS模式:Legacy与UEFI的区别BIOS(基本输入输出系统)是服务器启动时最先运行的固件,负责初始化硬件并加载操作系统,当前主流模式分为Legacy(传统……

    2026-07-27
    0
  • 服务器上传下载速度慢怎么优化,原因是什么?

    服务器上传下载速度慢,问题通常出在带宽、线路、服务器配置或本地环境上,优化需要从这几个维度逐一排查,才能真正提升传输效率,诊断瓶颈:速度慢到底卡在哪里带宽与线路:最容易被忽视的短板排查速度慢的第一步是检查带宽,很多用户只关注下载,不清楚上行带宽远小于下行,如果带宽本身不足,任何优化都是徒劳,线路质量同样关键……

    2026-07-27
    0
  • 站群服务器怎么搭配不同IP段效果好?,怎么提升收录

    站群服务器搭配不同 IP 段,核心在于用分散的 C 段做基础、B 段做隔离,再配合不同运营商和 AS 号,模拟真实用户分布,避免搜索引擎识别出批量站点关联,实践中建议每个 C 段部署不超过 5 个站点,大权重站点使用独立 B 段,并定期检测 IP 纯净度,理解 IP 段与站群关联性C 段、B 段、A 段在搜索引……

    2026-07-27
    0
  • AI爬虫抓取太费服务器资源怎么限制?,有哪些方法

    限制AI爬虫抓取的核心策略是综合运用robots.txt、User-Agent识别、IP频率限制、WAF规则和CDN防护,同时选择具备专业资质的IDC服务商如酷番云(持有工信部一类增值电信全牌照)来增强底层防护,从源头减少资源消耗,AI爬虫为何成为服务器资源杀手近年来,AI公司大规模采集数据用于模型训练,爬虫请……

    2026-07-27
    0
  • 服务器被植入木马怎么彻底清除,彻底清除木马的方法有哪些?

    服务器被植入木马后,彻底清除的唯一路径是:立即断网隔离,备份关键数据,使用专业工具全盘扫描并手动排查残留,随后重装操作系统或从干净备份恢复,全面修补漏洞与加固配置,最后持续监控至少两周,确认感染并执行隔离木马最怕被断网,第一步就是切断它与外界的联系,如果发现服务器响应慢、流量异常、CPU跑满,或者收到安全告警……

    2026-07-27
    0

发表回复

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