自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

速看!今天我才知道UUID還分五個版本

開發(fā) 后端
在本教程中,我們主要介紹 UUID 是什么及其格式和版本。我們還介紹了由 java UUID類中生成uuid的方法。

通用唯一識別碼(英語:Universally Unique Identifier,縮寫:UUID)是用于計算機體系中以識別信息數(shù)目的一個128位標識符,還有相關(guān)的術(shù)語:全局唯一標識符(GUID)。

根據(jù)標準方法生成,不依賴中央機構(gòu)的注冊和分配,UUID具有唯一性,這與其他大多數(shù)編號方案不同。重復UUID碼概率接近零,可以忽略不計。

UUID是由一組32位數(shù)的16進制數(shù)字所構(gòu)成,故UUID理論上的總數(shù)為16^32=2^128,約等于3.4 x 10^38。也就是說若每納秒(ns)產(chǎn)生1萬億個UUID,要花100億年才會將所有UUID用完。

UUID的標準型式包含32個16進制數(shù)字,以連字號分為五段,形式為 8-4-4-4-12 的32個字符。

  • 示例:550e8400-e29b-41d4-a716-446655440000

UUID 格式:

在其規(guī)范的文本表示中,UUID 的 16 個 8 位字節(jié)表示為 32 個十六進制(基數(shù)16)數(shù)字,顯示在由連字符分隔 '-' 的五個組中,"8-4-4-4-12" 總共 36 個字符(32 個字母數(shù)字字符和 4 個連字符)。例如:

  1. 123e4567-e89b-12d3-a456-426655440000 
  2. xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 

ps:上下對比看,a在十六進制中表示10

四位數(shù)字 M表示 UUID 版本,數(shù)字 N的一至三個最高有效位表示 UUID 變體。在例子中,M 是 1 而且 N 是 a(10xx),這意味著此 UUID 是“變體1”、“版本1”UUID;即基于時間的 DCE/RFC 4122 UUID。

UUID 版本:

對于“變體(variants)1”和“變體2”,標準中定義了五個版本(versions),并且在特定用例中每個版本可能比其他版本更合適。

版本由 M 字符串中指示。

版本1 - UUID 是根據(jù)時間和節(jié)點 ID(通常是MAC地址)生成;

版本2 - UUID是根據(jù)標識符(通常是組或用戶ID)、時間和節(jié)點ID生成;

版本3、版本5 - 確定性UUID 通過散列(hashing)名字空間(namespace)標識符和名稱生成;

版本4 - UUID 使用隨機性或偽隨機性生成。

Java中生成 UUID:

下面讓我們介紹一下 Java UUID 類中可以用來生成 UUID 的方法:

1. randomUUID():

它使用加密強度高的偽隨機數(shù)生成器生成v4偽隨機UUID:

  1. UUID uuid = UUID.randomUUID(); 

2. nameUUIDFromBytes():

我們可以使用 nameuidfrombytes ()從字節(jié)數(shù)組生成 UUID:

  1. byte[] byteArr = {11, 23, 33}; 
  2.  
  3. UUID uuid = UUID.nameUUIDFromBytes(byteArr); 

 此方法生成 v3 UUID (基于名稱的)。

3. fromString():

使用 fromString () ,我們可以從一個標準的字符串表示創(chuàng)建 UUID:

  1. UUID uuid = UUID.fromString("533a4559-e55c-18b3-2456-555563322002"); 

對于作為參數(shù)傳入的任何無效字符串,它將拋出 IllegalArgumentException。

比較兩個 uuid:

Java UUID 實現(xiàn)了 Comparable 接口,因此,我們可以使用 compareTo ()方法來比較它們


  1. UUID uuid1 = UUID.randomUUID(); 
  2. UUID uuid2 = UUID.randomUUID(); 
  3.   
  4. int` `result = uuid1.compareTo(uuid2); 

如我們所知,compareTo ()方法返回:

  • 1: 如果uuid1大于uuid2
  • 0:如果uuid1=uuid2
  • -1: 如果uuid1小于uuid2

我們也可以選擇使用 equals ()方法進行比較。

總結(jié):

在本教程中,我們了解了 UUID 是什么及其格式和版本。我們還介紹了由 java UUID類中生成uuid的方法。

 

責任編輯:姜華 來源: 今日Java
相關(guān)推薦

2021-03-12 08:02:34

Redis數(shù)據(jù)類型.

2020-02-03 16:52:43

Redis數(shù)據(jù)結(jié)構(gòu)知道

2021-06-18 11:46:18

華為云

2024-11-11 10:58:03

Spring接口編程

2025-04-08 08:12:26

Next.js組件ChatGPT

2021-10-11 14:14:41

漏洞網(wǎng)絡安全網(wǎng)絡攻擊

2017-06-02 10:01:53

2021-04-20 08:02:08

業(yè)務數(shù)據(jù)用戶

2021-08-09 15:18:01

SQL數(shù)據(jù)庫大數(shù)據(jù)

2018-11-14 10:00:07

程序員開發(fā)技巧Git

2021-04-29 07:46:55

Redis業(yè)務數(shù)據(jù)

2020-11-16 07:26:25

賠償碼農(nóng)

2019-11-11 08:45:52

HTTPTCP數(shù)據(jù)

2020-09-07 14:30:37

JUC源碼CAS

2009-06-30 13:00:30

JSP入門

2018-06-11 09:58:40

區(qū)塊鏈Bluffer指南

2023-11-23 10:21:37

2025-03-20 12:00:00

C++this指針匯編

2023-02-27 07:29:19

SSD固態(tài)硬盤
點贊
收藏

51CTO技術(shù)棧公眾號