java.rmi.server

接口
异常
java.lang.Object
  继承者 java.rmi.server.UID
所有已实现的接口:
Serializable

public final class UID
     
extends Object
implements Serializable

UID 表示一个和生成它的主机的时间有关的唯一标识符,或者是 216 个“熟知”标识符之一。

UID() 构造方法可以用来生成一个和生成此标识符的主机的时间有关的唯一标识符。UID(short) 构造方法可以用来创建 216 个熟知标识符之一。

UID 实例包含以下三个基本值:

  • unique,它是一个 int 值,唯一标识在其中生成此 UID 的 VM,并和主机和由 time 值表示的时间有关,(unique 值的示例实现是一个进程标识符),对于熟知 UID 此值为 0。
  • time,它是一个 long 值,其等于此 UID 在其中生成的 VM 处于活动状态时的时间(由 System.currentTimeMillis() 返回),对于熟知 UID 为 0。
  • count,它是一个 short值,以区分用同一 time 值在同一个 VM 中生成的 UID

单独生成的 UID 实例具有唯一性并和生成它的主机的时间有关,条件是主机启动所需时间超过一毫秒,并且系统时钟从不向后调。可以通过将唯一主机标识符(如 IP 地址)和 UID 实例配对来构造全局唯一标识符。

从以下版本开始:
JDK1.1
另请参见:
序列化表格

构造方法摘要
UID()
          生成一个 UID,它和生成它的主机的时间有关且具有唯一性。
UID(short num)
          创建一个“熟知”UID
 
方法摘要
 boolean equals(Object obj)
          比较给定对象与此 UID 的相等性。
 int hashCode()
          返回此 UID 的哈希码值。
static UID read(DataInput in)
          通过从 DataInput 实例解组二进制表示形式构造并返回一个新的 UID
 String toString()
          返回此 UID 的字符串表示形式。
 void write(DataOutput out)
          将此 UID 的二进制表示形式编组为一个 DataOutput 实例。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

UID

public UID()
生成一个 UID,它和生成它的主机的时间有关且具有唯一性。


UID

public UID(short num)
创建一个“熟知” UID。 可能有 2 16 个这样的熟知 ID。

通过此构造方法创建的 UID 将不与通过无参数构造方法生成的所有 UID 冲突。

参数:
num - 表示熟知 UID 的数字
方法详细信息

hashCode

public int hashCode()
返回此 UID 的哈希码值。

覆盖:
Object 中的 hashCode
返回:
UID 的哈希码值
另请参见:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
比较给定对象与此 UID 的相等性。 当且仅当指定对象为具有与此对象相同的 uniquetimecount 值的 UID 实例时,此方法返回 true

覆盖:
Object 中的 equals
参数:
obj - 要与此 UID 比较的对象
返回:
如果给定对象与此对象等效,则返回 true;否则返回 false
另请参见:
Object.hashCode(), Hashtable

toString

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

覆盖:
Object 中的 toString
返回:
UID 的字符串表示形式

write

public void write(DataOutput out)
           throws IOException
将此 UID 的二进制表示形式编组为一个 DataOutput 实例。

需要特别说明的是,此方法首先要用此 UIDunique 值调用给定流的 DataOutput.writeInt(int) 方法,然后用 UIDtime 值调用该流的 DataOutput.writeLong(long) 方法,接着用此 UIDcount 值调用该流的 DataOutput.writeShort(int) 方法。

参数:
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 值,接下来创建并返回一个包含从该流中读取的 uniquetimecount 值的 UID 实例。

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