java生成UUID通用唯一识别码
UUID含義是通用唯一識別碼 (Universally Unique Identifier),這是一個軟件建構的標準,也是被開源軟件基金會 (Open Software Foundation, OSF) 的組織在分布式計算環境 (Distributed Computing Environment, DCE) 領域的一部份。
UUID 的目的,是讓分布式系統中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其它人沖突的 UUID。在這樣的情況下,就不需考慮數據庫建立時的名稱重復問題。
目前最廣泛應用的 UUID,即是微軟的 Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的應用,則有?Linux?ext2/ext3 檔案系統、LUKS 加密分割區、GNOME、KDE、Mac OS X 等等。
UUID的唯一缺陷在于生成的結果串會比較長。?
?
二、UUID 組成
? ? UUID保證對在同一時空中的所有機器都是唯一的。通常平臺會提供生成的API。按照開放軟件基金會(OSF)制定的標準計算,用到了以太網卡地址、納秒級時間、芯片ID碼和許多可能的數字。
UUID組成部分:
(1)當前日期和時間,UUID的第一個部分與時間有關,如果你在生成一個UUID之后,過幾秒又生成一個UUID,則第一個部分不同,其余相同。
(2)時鐘序列。
(3)全局唯一的IEEE機器識別號,如果有網卡,從網卡MAC地址獲得,沒有網卡以其他方式獲得。
在ColdFusion中可以用CreateUUID()函數很簡單地生成UUID,
其格式為:xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每個 x 是 0-9 或 a-f 范圍內的一個十六進制的數字。
而標準的UUID格式為:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12);
?
三、java使用UUID
java.util.UUID?類表示一個不變的通用唯一標識符(UUID)。以下是有關UUID的要點:
-
一個UUID表示一個128位的值。
-
它是用于創建隨機文件名,在Web應用程序的會話ID,事務ID等。
-
還有UUID四種不同的基本類型:基于時間,DCE安全性,基于名稱,并隨機生成的UUID。
?
以下是java.util.UUID類的聲明:
public final class UUIDextends Objectimplements Serializable, Comparable<UUID>?
UUID的使用:
//生成的id 752d231c-e5a3-871c-65d4-142dfa562cb4中間含有橫杠,用來生成數據庫的主鍵id是很實用的。 UUID uuid = UUID.randomUUID(); String id=uuid.toString(); id=id.replace("-", "");//替換掉中間的那個橫杠?
| ?int | clockSequence() ??????????與此 UUID 相關聯的時鐘序列值。 |
| ?int | compareTo(UUID?val) ??????????將此 UUID 與指定的 UUID 比較。 |
| ?boolean | equals(Object?obj) ??????????將此對象與指定對象比較。 |
| static?UUID | fromString(String?name) ??????????根據 toString() 方法中描述的字符串標準表示形式創建 UUID。 |
| ?long | getLeastSignificantBits() ??????????返回此 UUID 的 128 位值中的最低有效 64 位。 |
| ?long | getMostSignificantBits() ??????????返回此 UUID 的 128 位值中的最高有效 64 位。 |
| ?int | hashCode() ??????????返回此 UUID 的哈希碼。 |
| static?UUID | nameUUIDFromBytes(byte[]?name) ??????????根據指定的字節數組獲取類型 3(基于名稱的)UUID 的靜態工廠。 |
| ?long | node() ??????????與此 UUID 相關的節點值。 |
| static?UUID | randomUUID() ??????????獲取類型 4(偽隨機生成的)UUID 的靜態工廠。 |
| ?long | timestamp() ??????????與此 UUID 相關聯的時間戳值。 |
| ?String | toString() ??????????返回表示此 UUID 的 String 對象。 |
| ?int | variant() ??????????與此 UUID 相關聯的變體號。 |
| ?int | version() ??????????與此 UUID 相關聯的版本號。 |
?
?
總結
以上是生活随笔為你收集整理的java生成UUID通用唯一识别码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 像创维全面屏电视55H5这样的硬件配置,
- 下一篇: java中Date