1. 程式人生 > 程式設計 >淺談JAVA如何生成UUID唯一標識

淺談JAVA如何生成UUID唯一標識

1.UUID 簡介

UUID 含義是通用唯一識別碼 (Universally Unique Identifier),這是一個軟體建構的標準。

也是被開源軟體基金會 (Open Software Foundation,OSF)的組織應用在分散式計算環境 (Distributed Computing Environment,DCE) 領域的一部分。

UUID 的目的,是讓分散式系統中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。

如此一來,每個人都可以建立不與其它人衝突的 UUID。在這樣的情況下,就不需考慮資料庫建立時的名稱重複問題。

2.UUID 組成

UUID保證對在同一時空中的所有機器都是唯一的。通常平臺會提供生成的API。

按照開放軟體基金會(OSF)制定的標準計算,用到了乙太網卡地址、納秒級時間、晶片ID碼和許多可能的數字。

UUID由以下幾部分的組合:

(1)當前日期和時間,UUID的第一個部分與時間有關,如果你在生成一個UUID之後,過幾秒又生成一個UUID,則第一個部分不同,其餘相同。

(2)時鐘序列。

(3)全域性唯一的IEEE機器識別號,如果有網絡卡,從網絡卡MAC地址獲得,沒有網絡卡以其他方式獲得。

UUID的唯一缺陷在於生成的結果串會比較長。關於UUID這個標準使用最普遍的是微軟的GUID(Globals Unique Identifiers)。

標準的UUID格式為:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)。

3.專案實戰

UUID 來作為資料庫資料表主鍵是非常不錯的選擇,保證每次生成的UUID 是唯一的。

a.生成 UUID

public static void main(String[] args) {
    for(int i=0;i<10;i++){
      String uuid = UUID.randomUUID().toString().replaceAll("-","");
      System.out.println(uuid);
    }
  }

b.生成指定數目的 UUID

/**
   * 獲得指定數目的UUID 
   * @param number int 需要獲得的UUID數量 
   * @return String[] UUID陣列 
   */
  public static String[] getUUID(int number){
    if(number < 1){
      return null;
    }
    String[] retArray = new String[number];
    for(int i=0;i<number;i++){
      retArray[i] = getUUID();
    }
    return retArray;
  }

  /**
   * 獲得一個UUID 
   * @return String UUID 
   */
  public static String getUUID(){
    String uuid = UUID.randomUUID().toString();
    //去掉“-”符號 
    return uuid.replaceAll("-","");
  }

到此這篇關於淺談JAVA如何生成UUID唯一標識的文章就介紹到這了,更多相關Java 生成 UUID內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!