「guid定义java」java guilde
今天给各位分享guid定义java的知识,其中也会对java guilde进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java里面怎么样使用GUID?
使用类 java.util.UUID,要求jdk1.5,示例如下:
//生成一个随机的GUID
java.util.UUID uuid=java.util.UUID.randomUUID();
//将UUID对象转换为字符串
String output=uuid.toString();
怎样用java生成GUID与UUID
GUID 是微软用于COM组件的标识,UUID是Java生成32位16进制ID的实现,但两者本质相同。
java中生成的guid是多少位
一个生成GUID的函数: private string getGUID() { System.Guid guid = new Guid(); guid = Guid.NewGuid(); string str = guid.ToString(); return str; } 随机生成如下字符串: e92b8e30-a6e5-41f6-a6b9-188230a23dd2 格式说明: System.Guid.NewGuid().ToString(format) 格式说明符 返回值的格式 N 32位: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 如:e92b8e30a6e541f6a6b9188230a23dd2 D 由连字符分隔的32位数字: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 如:e92b8e30-a6e5-41f6-a6b9-188230a23dd2 B 括在大括号中、由连字符分隔的32位数字: {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 如:{e92b8e30-a6e5-41f6-a6b9-188230a23dd2} P 括在圆括号中、由连字符分隔的32位数字: (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) 如:(e92b8e30-a6e5-41f6-a6b9-188230a23dd2)
java uuid 和guid 的区别
UUID是一个由4个连字号(-)将32个字节长的字符串分隔后生成的字符串,总共36个字节长。比如:550e8400-e29b-41d4-a716-446655440000
GUID 是微软对UUID这个标准的实现。UUID是由开放软件基金会(OSF)定义的。UUID还有其它各种实现,不止GUID一种。比如我们这里在Java中用到的。
GUID什么意思
GUID(Globally Unique IDentifier) 也称作 UUID(Universally Unique IDentifier).
特点:
GUID/UUID是通过特定算法产生的一个二进制长度为128位的数字,
在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同,
在公元3400年以前产生的UUID/GUID与任何其他产生过的UUIDs/GUIDs都不相同。
在需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。
GUID的长度固定,并且相对而言较短小,非常适合于排序、标识和存储。
用途:
标识特定的组件、程序、文件、数据、用户等,并可以在网络中使用。
格式:
UUID 字符串格式可以由下面的EBNF语言来描述:
UUID = time_low "-" time_mid "-"
time_high_and_version "-"
clock_seq_and_reserved
clock_seq_low "-" node
time_low = 4*hexOctet
time_mid = 2*hexOctet
time_high_and_version = 2*hexOctet
clock_seq_and_reserved = hexOctet
clock_seq_low = 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"
例如:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
算法:
GUID的算法并不唯一,可以由多种方法来生成。
GUID生成器除了标识不同的时间,还要唯一地标识不同的地点,这可以使用网卡的48位的IEEE 802地址。
GUID的128位可以分为16个字节,前8个字节是时间和版本号,中间2个字节是UUID变体和时钟序数,后6个字节标识地点。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| time_low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| time_mid | time_hi_and_version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|clk_seq_hi_res | clk_seq_low | node (0-1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| node (2-5) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
UUID变体位于第9个字节的前3位,有4种定义:
Msb0 Msb1 Msb2 Description
0 - - Reserved, NCS backward compatibility.
1 0 - The variant specified in this document.
1 1 0 Reserved, Microsoft Corporation backward
compatibility
1 1 1 Reserved for future definition.
版本号位于第7个字节的前4位:
Msb0 Msb1 Msb2 Msb3 Version Description
0 0 0 1 1 The time-based version
specified in this
document.
0 0 1 0 2 Reserved for DCE
Security version, with
embedded POSIX UIDs.
0 0 1 1 3 The name-based version
specified in this
document
0 1 0 0 4 The randomly or pseudo-
randomly generated
version specified in
this document
时间的标识(Timestamp)
UUID version 1, UTC时间从 00:00:00.00, 15 October 1582开始以100纳秒的计数.
没有UTC时间时,也可以使用当地时间,只要在系统中保持一贯就行,这并不推荐,
当地时间与UTC时间只是一个时差的问题。
UTC - Coordinated Universal Time
UUID version 3, 由名字空间产生一个60位数.
UUID version 4, 随机地或伪随机地产生一个60位数.
时钟序数 Clock sequence
UUID version 1, 时钟序数用来避免钟表被调慢后产生重复。比如网卡移到别的机器上,或者断电等。
如果先前的时钟序数已知,加1即可,否则随机产生,更换随机数种子以减小重复的可能性。
UUID version 3, 由名字空间产生一个14位数.
地点的标识(node)
UUID version 1, 采用主机的IEEE 地址,系统有多个IEEE 802地址时,任取一个;
没有IEEE地址时,使随机数或伪随机数并保证与网卡上地址不同(见 section 4).
UUID version 3, 由名字空间产生一个48位数.
UUID version 4, 随机地或伪随机地产生一个48位数.
参考文献:
guid定义java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java guilde、guid定义java的信息别忘了在本站进行查找喔。