public final class UID extends Object implements Serializable
UID
表示相对于其在其上生成的主机或者16个 “知名”标识符之一的时间而言是唯一的标识符。
UID()
构造函数可用于生成相对于其生成的主机而言随时间而言是唯一的标识符。 UID(short)
构造函数可用于创建2 16个已知标识符之一。
UID
实例包含三个基元值:
unique
,一个int
唯一标识VM这UID
产生在相对于它的主体和由表示的时间time
值(一示例实现中的的unique
值将是一个进程标识符)用于阱,或零已知UID
time
,一个long
等于一个时间(如通过返回System.currentTimeMillis()
在该VM,这一) UID
在一个公知的产生在世时,或零UID
count
,一个short
区分UID
在同一个VM中产生的time
值相同 独立生成的UID
实例对于主机而言随着时间的推移是独一无二的,只要主机需要超过一毫秒的重新启动并且其系统时钟从不被设置为反向。 可以通过将UID
实例与唯一主机标识符(例如IP地址)配对来构建全局唯一标识符。
Constructor and Description |
---|
UID()
生成一个
UID ,它相对于生成的主机而言是独一无二的。
|
UID(short num)
创建“知名”
UID 。
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
将指定的对象与此
UID 进行比较以获得相等性。
|
int |
hashCode()
返回此
UID 的哈希码值。
|
static UID |
read(DataInput in)
构造并返回一个新的
UID 实例,通过从
DataInput 实例解组二进制表示。
|
String |
toString()
返回此
UID 的字符串表示
UID 。
|
void |
write(DataOutput out)
将此
UID 的二进制表示法
UID 交给
DataOutput 实例。
|
public UID()
UID
,它相对于生成的主机而言是独一无二的。
public UID(short num)
UID
。
有2116 个这样的知名ids。
通过此构造UID
创建的UID不会与通过no-arg构造函数生成的任何UID
冲突。
num
- 知名
UID
public int hashCode()
UID
的哈希码值。
hashCode
在类
Object
UID
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
UID
进行比较以获得相等性。
此方法返回true
当且仅当指定对象为UID
实例具有相同unique
, time
和count
值作为这一个。
equals
在
Object
obj
- 对比这个
UID
的对象
true
如果给定的对象相当于这个对象,而
false
则为false
Object.hashCode()
, HashMap
public void write(DataOutput out) throws IOException
UID
的二进制表示法UID
交给DataOutput
实例。
具体地,此方法首先调用给定流的DataOutput.writeInt(int)
方法与此UID
的unique
值,则调用流的DataOutput.writeLong(long)
方法与此UID
的time
值,然后它调用流的DataOutput.writeShort(int)
方法与此UID
的count
值。
out
-
DataOutput
实例写这个
UID
到
IOException
- 执行此操作时是否发生I / O错误
public static UID read(DataInput in) throws IOException
UID
实例,通过从DataInput
实例解组二进制表示。
具体来说,该方法首先调用给定流的DataInput.readInt()
方法来读取一个unique
值,然后调用该流的DataInput.readLong()
方法来读取一个time
值,然后调用该流的DataInput.readShort()
方法来读取一个count
值,然后创建并返回一个新UID
包含实例unique
, time
和count
从流中读取的值。
in
-
DataInput
实例,从
UID
从
UID
实例
IOException
- 执行此操作时是否发生I / O错误