Loading

java UUID的创建

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("==================");
    }

}

 

posted @ 2015-11-19 08:38  stono  阅读(1015)  评论(0编辑  收藏  举报