
java UUID的创建:
参考:http://blog.****.net/yaerfeng/article/details/7070369 可以研究一下最后的一段代码;
http://spiritfrog.iteye.com/blog/604048
http://www.cnblogs.com/jdonson/archive/2009/07/22/1528466.html
package com.stono.test; import java.util.UUID; public class TestUUID { public static void main(String[] args) {
UUID uuid = UUID.randomUUID();
printUUID(uuid);
/**
* dd1646bd-f104-4de8-9d08-582a823b39e6
length:36
version:4
variant:2
*/
// 输入参数必须是一个已有的UUID
UUID uuid3 = UUID.fromString("2e8314b1-0b5d-4475-9ea1-52b01acbeaac");
printUUID(uuid3);
/**
* 2e8314b1-0b5d-4475-9ea1-52b01acbeaac
length:36
version:4
variant:2
*/
// 如下三个方法都会抛出异常;
// System.out.println(uuid.node());
// System.out.println(uuid.timestamp());
// System.out.println(uuid.clockSequence());
/**
* Exception in thread "main" java.lang.UnsupportedOperationException: Not a time-based UUID
at java.util.UUID.node(UUID.java:363)
at com.stono.test.TestUUID.main(TestUUID.java:15)
*/
UUID uuid2 = UUID.randomUUID();
printUUID(uuid2);
System.out.println(uuid2.compareTo(uuid));
System.out.println(uuid.compareTo(uuid2));
System.out.println(uuid.compareTo(uuid)); // 这样的输入会产生 00000000-0000-0001-0000-000000000002 UUID
UUID uuid4 = new UUID(1L, 2L);
printUUID(uuid4);
} private static void printUUID(UUID uuid) {
String string = uuid.toString();
System.out.println(string);
System.out.println("\t\t\tlength:"+string.length());
/**
* version 表示意义:
* 1 基于时间的 UUID
2 DCE 安全 UUID
3 基于名称的 UUID
4 随机生成的 UUID
*/
System.out.println("\t\t\tversion:"+uuid.version());
/**
* variant 表示意义:
* 0 为 NCS 向后兼容保留
2 Leach-Salz 变体(由此类使用)
6 保留,Microsoft Corporation 向后兼容
7 保留供以后定义使用
*/
System.out.println("\t\t\tvariant:"+uuid.variant());
System.out.println("\t\t\thashCode:"+uuid.hashCode());
//返回此 UUID 的 128 位值中的最高有效 64 位。
System.out.println("\t\t\tMostSignificantBits:"+uuid.getMostSignificantBits());
//返回此 UUID 的 128 位值中的最低有效 64 位。
System.out.println("\t\t\tLeastSignificantBits:"+uuid.getLeastSignificantBits());
System.out.println("==================");
} }