类 UUID

java.lang.Object
com.walker.web.util.UUID
所有已实现的接口:
Serializable, Comparable<UUID>

public final class UUID extends Object implements Serializable, Comparable<UUID>
提供通用唯一识别码(universally unique identifier)(UUID)实现
作者:
mike
另请参阅:
  • 构造器概要

    构造器
    构造器
    说明
    UUID(long mostSigBits, long leastSigBits)
    使用指定的数据构造新的 UUID。
  • 方法概要

    修饰符和类型
    方法
    说明
    int
    与此 UUID 相关联的时钟序列值。
    int
    将此 UUID 与指定的 UUID 比较。
    boolean
    将此对象与指定对象比较。
    static UUID
    获取类型 4(伪随机生成的)UUID 的静态工厂。
    static UUID
    根据 toString() 方法中描述的字符串标准表示形式创建UUID
    long
    返回此 UUID 的 128 位值中的最低有效 64 位。
    long
    返回此 UUID 的 128 位值中的最高有效 64 位。
    获取随机数生成器对象
    ThreadLocalRandom是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺。
    获取SecureRandom,类提供加密的强随机数生成器 (RNG)
    int
    返回此 UUID 的哈希码。
    static UUID
    nameUUIDFromBytes(byte[] name)
    根据指定的字节数组获取类型 3(基于名称的)UUID 的静态工厂。
    long
    与此 UUID 相关的节点值。
    static UUID
    获取类型 4(伪随机生成的)UUID 的静态工厂。
    static UUID
    randomUUID(boolean isSecure)
    获取类型 4(伪随机生成的)UUID 的静态工厂。
    long
    与此 UUID 相关联的时间戳值。
    返回此UUID 的字符串表现形式。
    toString(boolean isSimple)
    返回此UUID 的字符串表现形式。
    int
    与此 UUID 相关联的变体号。
    int
    与此 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 位
  • 方法详细资料

    • fastUUID

      public static UUID fastUUID()
      获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的本地线程伪随机数生成器生成该 UUID。
      返回:
      随机生成的 UUID
    • randomUUID

      public static UUID randomUUID()
      获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。
      返回:
      随机生成的 UUID
    • randomUUID

      public static UUID randomUUID(boolean isSecure)
      获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。
      参数:
      isSecure - 是否使用SecureRandom如果是可以获得更安全的随机码,否则可以得到更好的性能
      返回:
      随机生成的 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
      抛出:
      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 保留,微软向后兼容
      • 7 保留供以后定义使用
      返回:
      UUID 相关联的变体号
    • timestamp

      public long timestamp() throws UnsupportedOperationException
      与此 UUID 相关联的时间戳值。

      60 位的时间戳值根据此 UUID 的 time_low、time_mid 和 time_hi 字段构造。
      所得到的时间戳以 100 毫微秒为单位,从 UTC(通用协调时间) 1582 年 10 月 15 日零时开始。

      时间戳值仅在在基于时间的 UUID(其 version 类型为 1)中才有意义。
      如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。

      抛出:
      UnsupportedOperationException - 如果此 UUID 不是 version 为 1 的 UUID。
    • clockSequence

      public int clockSequence() throws UnsupportedOperationException
      与此 UUID 相关联的时钟序列值。

      14 位的时钟序列值根据此 UUID 的 clock_seq 字段构造。clock_seq 字段用于保证在基于时间的 UUID 中的时间唯一性。

      clockSequence 值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。 如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。

      返回:
      UUID 的时钟序列
      抛出:
      UnsupportedOperationException - 如果此 UUID 的 version 不为 1
    • node

      public long node() throws UnsupportedOperationException
      与此 UUID 相关的节点值。

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

      节点值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。
      如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。

      返回:
      UUID 的节点值
      抛出:
      UnsupportedOperationException - 如果此 UUID 的 version 不为 1
    • toString

      public String toString()
      返回此UUID 的字符串表现形式。

      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-9a-fA-F]
       
       
      覆盖:
      toString 在类中 Object
      返回:
      UUID 的字符串表现形式
      另请参阅:
    • toString

      public String toString(boolean isSimple)
      返回此UUID 的字符串表现形式。

      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-9a-fA-F]
       
       
      参数:
      isSimple - 是否简单模式,简单模式为不带'-'的UUID字符串
      返回:
      UUID 的字符串表现形式
    • hashCode

      public int hashCode()
      返回此 UUID 的哈希码。
      覆盖:
      hashCode 在类中 Object
      返回:
      UUID 的哈希码值。
    • equals

      public boolean equals(Object obj)
      将此对象与指定对象比较。

      当且仅当参数不为 null、而是一个 UUID 对象、具有与此 UUID 相同的 varriant、包含相同的值(每一位均相同)时,结果才为 true

      覆盖:
      equals 在类中 Object
      参数:
      obj - 要与之比较的对象
      返回:
      如果对象相同,则返回 true;否则返回 false
    • compareTo

      public int compareTo(UUID val)
      将此 UUID 与指定的 UUID 比较。

      如果两个 UUID 不同,且第一个 UUID 的最高有效字段大于第二个 UUID 的对应字段,则第一个 UUID 大于第二个 UUID。

      指定者:
      compareTo 在接口中 Comparable<UUID>
      参数:
      val - 与此 UUID 比较的 UUID
      返回:
      在此 UUID 小于、等于或大于 val 时,分别返回 -1、0 或 1。
    • getSecureRandom

      public static SecureRandom getSecureRandom()
      获取SecureRandom,类提供加密的强随机数生成器 (RNG)
      返回:
      SecureRandom
    • getRandom

      public static ThreadLocalRandom getRandom()
      获取随机数生成器对象
      ThreadLocalRandom是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺。
      返回:
      ThreadLocalRandom