Java使用UUID方式隨機生成不重複標識

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

     UUID是一個128位長的數字,通常用16進製表示。算法的核心思想是結合機器的網卡、當地時間、一個隨即數來生成UUID。從理論上講,若是一臺機器每秒產生10000000個UUID,則能夠保證(機率意義上)3240年不重複。如此一來,每一個人均可以創建不與其它人衝突的 UUID。在這樣的狀況下,就不需考慮數據庫創建時的名稱重複問題。算法


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

public class test {
  public static void main(String[] args) {
     String uuid = UUID.randomUUID().toString();
     System.out.println(uuid);
}

如下是我運行三次的結果數據庫

d0cd48ef-313a-405c-ac76-12cce5657dca
d7e1e24b-9574-4ea0-a08f-4cfa6965035f
c6b75eef-f6ca-4963-8c4f-26b72cb15eee

博客地址:http://my.oschina.net/wangniandom

相關文章
相關標籤/搜索