java UUID的创建:
参考:http://blog.csdn.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("=================="); } }