關於UUID的使用筆記

JAVA UUID 生成java

GUID是一個128位長的數字,通常用16進製表示。算法的核心思想是結合機器的網卡、當地時間、一個隨即數來生成GUID。從理論上講,若是一臺機器每秒產生10000000個GUID,則能夠保證(機率意義上)3240年不重複。算法

UUID是1.5中新增的一個類,在java.util下,用它能夠產生一個號稱全球惟一的ID數據庫

package com.mytest;數組

import java.util.UUID;dom

public class UTest {ui

    public static void main(String[] args) {.net

        UUID uuid = UUID.randomUUID();get

        System.out.println(uuid);string

    }class

}

UUID(Universally Unique Identifier)全局惟一標識符,是指在一臺機器上生成的數字,它保證對在同一時空中的全部機器都是惟一的。按照開放軟件基金會(OSF)制定的標準計算,用到了以太網卡地址、納秒級時間、芯片ID碼和許多可能的數字。由如下幾部分的組合:當前日期和時間(UUID的第一個部分與時間有關,若是你在生成一個UUID以後,過幾秒又生成一個UUID,則第一個部分不一樣,其他相同),時鐘序列,全局惟一的IEEE機器識別號(若是有網卡,從網卡得到,沒有網卡以其餘方式得到),UUID的惟一缺陷在於生成的結果串會比較長。 

在Java中生成UUID主要有如下幾種方式: 

JDK1.5 

若是使用的JDK1.5的話,那麼生成UUID變成了一件簡單的事,覺得JDK實現了UUID: 

java.util.UUID,直接調用便可. 

UUID uuid  =  UUID.randomUUID(); 

String s = UUID.randomUUID().toString();//用來生成數據庫的主鍵id很是不錯。。   

UUID是由一個十六位的數字組成,表現出來的形式例如 

550E8400-E29B-11D4-A716-446655440000   

//下面就是實現爲數據庫獲取一個惟一的主鍵id的代碼 

public class UUIDGenerator { 

    public UUIDGenerator() { 

    } 

    /** 

     * 得到一個UUID 

     * @return String UUID 

     */ 

    public static String getUUID(){ 

        String s = UUID.randomUUID().toString(); 

        //去掉「-」符號 

        return s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24); 

    } 

    /** 

     * 得到指定數目的UUID 

     * @param number int 須要得到的UUID數量 

     * @return String[] UUID數組 

     */ 

    public static String[] getUUID(int number){ 

        if(number < 1){ 

            return null; 

        } 

        String[] ss = new String[number]; 

        for(int i=0;i<number;i++){ 

            ss[i] = getUUID(); 

        } 

        return ss; 

    } 

    public static void main(String[] args){ 

        String[] ss = getUUID(10); 

        for(int i=0;i<ss.length;i++){ 

            System.out.println(ss[i]); 

        } 

    } 

}   

相關文章
相關標籤/搜索