Module java.rmi
Package java.rmi.server

Class UID

java.lang.Object
java.rmi.server.UID
所有已实现的接口:
Serializable

public final class UID extends Object implements Serializable
一个UID表示一个标识符,相对于生成它的主机而言,它随时间唯一,或者是216个“众所周知”的标识符之一。

UID()构造函数可用于生成一个标识符,相对于生成它的主机而言,它随时间唯一。 UID(short)构造函数可用于创建216个众所周知的标识符之一。

UID实例包含三个原始值:

  • unique,一个唯一标识生成此UID的VM的int,相对于其主机和由time值表示的时间(unique值的一个示例实现可能是进程标识符),或者对于众所周知的UID为零
  • time,一个等于生成此UID的VM存活时的时间(由System.currentTimeMillis()返回)的long,或者对于众所周知的UID为零
  • count,一个short,用于区分在相同VM中生成具有相同time值的UID

一个独立生成的UID实例随时间唯一,相对于生成它的主机,只要主机需要超过一毫秒来重新启动,并且其系统时钟从不向后设置。可以通过将UID实例与唯一主机标识符(例如IP地址)配对来构造全局唯一标识符。

自 JDK 版本:
1.1
参见:
  • Constructor Summary

    Constructors
    Constructor
    Description
    UID()
    生成一个相对于生成它的主机而言随时间唯一的UID
    UID(short num)
    创建一个“众所周知”的UID
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object obj)
    将指定的对象与此UID进行比较以检查是否相等。
    int
    返回此UID的哈希码值。
    static UID
    通过从DataInput实例中解组二进制表示,构造并返回一个新的UID实例。
    返回此UID的字符串表示形式。
    void
    将此UID的二进制表示组合到DataOutput实例中。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • UID

      public UID()
      生成一个相对于生成它的主机而言随时间唯一的UID
    • UID

      public UID(short num)
      创建一个“众所周知”的UID。有216个可能的这种众所周知的标识符。

      通过此构造函数创建的UID不会与通过无参构造函数生成的任何UID发生冲突。

      参数:
      num - 用于众所周知的UID的数字
  • Method Details

    • hashCode

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

      public boolean equals(Object obj)
      将指定的对象与此UID进行比较以检查是否相等。仅当指定的对象是具有与此对象相同的uniquetimecount值的UID实例时,此方法才返回true
      覆盖:
      equals 在类 Object
      参数:
      obj - 要将此UID与之比较的对象
      返回:
      如果给定对象等同于此对象,则返回true;否则返回false
      参见:
    • toString

      public String toString()
      返回此UID的字符串表示形式。
      覆盖:
      toString 在类 Object
      返回:
      UID的字符串表示形式
    • write

      public void write(DataOutput out) throws IOException
      将此UID的二进制表示组合到DataOutput实例中。

      具体来说,此方法首先使用此UIDunique值调用给定流的DataOutput.writeInt(int)方法,然后使用流的DataOutput.writeLong(long)方法使用此UIDtime值,最后使用流的DataOutput.writeShort(int)方法使用此UIDcount值。

      参数:
      out - 要将此UID写入的DataOutput实例
      抛出:
      IOException - 如果执行此操作时发生I/O错误
    • read

      public static UID read(DataInput in) throws IOException
      通过从DataInput实例中解组二进制表示,构造并返回一个新的UID实例。

      具体来说,此方法首先调用给定流的DataInput.readInt()方法读取一个unique值,然后调用流的DataInput.readLong()方法读取一个time值,然后调用流的DataInput.readShort()方法读取一个count值,然后创建并返回一个新的UID实例,其中包含从流中读取的uniquetimecount值。

      参数:
      in - 要从中读取UIDDataInput实例
      返回:
      解组的UID实例
      抛出:
      IOException - 如果执行此操作时发生I/O错误