java uuid_Java UUID
java uuid
介紹:
UUID(通用唯一標識符)表示一個128位長的唯一值 。 它也被普遍稱為GUID(全球唯一標識符)。
UUID的標準表示形式由十六進制數字組成:
533a4559-e55c-18b3-8456-555563322002并具有36個字符 ,其中包括四個連字符'-' 。
Java 中的java.util.UUID類表示一個不變的UUID。
我們可以使用UUID類來生成隨機文件名,會話或事務ID。 UUID的另一種流行用法是在數據庫中生成主鍵值。
Java UUID類具有用于處理Leach-Salz變體(變體2)的方法 。 但是,其構造函數允許生成任何類型的UUID :
new UUID(long mostSigBits, long leastSigBits)變體確定UUID的布局。 讓我們來一個樣本UUID :
533a4559-e55c-18b3-8456-555563322002 xxxxxxxx-xxxx-Bxxx-Axxx-xxxxxxxxxxxx此處, A的值表示變量,并由其前三個MSB(最高有效位)確定:
| 0 | X | X | 0 | 保留用于NCS向后兼容 | 
| 1個 | 0 | X | 2 | 里奇-薩爾茨 | 
| 1個 | 1個 | 0 | 6 | 保留,Microsoft Corporation向后兼容 | 
| 1個 | 1個 | 7 | 保留以供將來定義 | 
對于我們而言, A = 8(1000) ,因此前三個MSB為100 。 這意味著我們的UUID具有2的變體。
對于版本2 UUID ,有五個不同的版本:
| v1 | 基于時間的 | 
| v2 | DCE-安全 | 
| v3和v5 | 基于名稱 | 
| v4 | 隨機生成的UUID | 
生成
讓我們介紹一下Java UUID類中的方法,我們可以使用它們來生成UUID :
1.
它使用加密強度高的偽隨機數生成器生成v4偽隨機UUID :
UUID uuid = UUID.randomUUID();2.
我們可以使用nameUUIDFromBytes()從字節數組生成UUID :
byte[] byteArr = {11, 23, 33}; UUID uuid = UUID.nameUUIDFromBytes(byteArr);此方法生成v3 UUID (基于名稱)。
3.
使用fromString() ,我們可以從標準字符串表示形式創建UUID :
UUID uuid = UUID.fromString("533a4559-e55c-18b3-2456-555563322002");對于作為參數傳入的任何無效字符串,它將拋出IllegalArgumentException 。
比較兩個
Java UUID類實現Comparable接口。 因此,我們可以使用compareTo()方法進行比較:
UUID uuid1 = UUID.randomUUID(); UUID uuid2 = UUID.randomUUID();int result = uuid1.compareTo(uuid2);我們知道, compareTo()方法返回:
- 1:如果uuid1大于uuid2
- 0:如果uuid1 = uuid2
- -1:如果uuid1小于uuid2
我們也可以選擇使用equals()方法進行比較。
其他方法:
讓我們介紹一下Java UUID類的其他一些方法:
1.
顧名思義, getLeastSignificantBits()和getMostSignificantBits()分別返回64個最低有效位和64個最高有效位 :
UUID uuid = UUID.randomUUID();long leastSignificantBits = uuid.getLeastSignificantBits(); long mostSignificantBits = uuid.getMostSignificantBits();這兩種方法均返回一個long值。
2.
我們還可以查詢UUID的變體和版本:
UUID uuid = UUID.randomUUID();int variant = uuid.variant(); int version = uuid.version();使用基于時間的
首先,在我們的POM中為java- uuid -generator添加一個依賴項:
<dependency><groupId>com.fasterxml.uuid</groupId><artifactId>java-uuid-generator</artifactId><version>3.1.5</version> </dependency>請注意,該庫提供了各種類型的UUID生成器。
要創建基于時間的UUID ,我們將具有:
UUID uuid = Generators.timeBasedGenerator().generate();處理v1 UUID時,方便使用的java.util包中的其他方法包括:
1. timestamp(): 返回與給定的v1 UUID關聯的時間戳值 。 與任何其他類型的UUID一起使用時,此方法將引發UnsupportedOperationException 。
2. clockSequence(): 它返回一個14位值,該值由給定UUID的時鐘序列字段構成 。 它還會為v1類型以外的UUID拋出UnsupportedOperationException 。
結論:
在本教程中,我們了解了什么是UUID及其變體。 我們討論了變量類型2的不同可用版本。 我們還介紹了Java UUID類公開的許多方法。
翻譯自: https://www.javacodegeeks.com/2019/03/java-uuid.html
java uuid
總結
以上是生活随笔為你收集整理的java uuid_Java UUID的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 怎么修改404页面(怎么修改404页面密
- 下一篇: jtable隐藏全部_全部隐藏!
