偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

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

UUID的標(biāo)準(zhǔn)型式包含32個(gè)16進(jìn)制數(shù)字,以連字號分為五段,形式為 8-4-4-4-12 的32個(gè)字符。

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

UUID 格式:

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

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

ps:上下對比看,a在十六進(jìn)制中表示10

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

UUID 版本:

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

版本由 M 字符串中指示。

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

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

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

版本4 - UUID 使用隨機(jī)性或偽隨機(jī)性生成。

Java中生成 UUID:

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

1. randomUUID():

它使用加密強(qiáng)度高的偽隨機(jī)數(shù)生成器生成v4偽隨機(jī)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 () ,我們可以從一個(gè)標(biāo)準(zhǔn)的字符串表示創(chuàng)建 UUID:

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

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

比較兩個(gè) uuid:

Java UUID 實(shí)現(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 ()方法進(jìn)行比較。

總結(jié):

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

 

責(zé)任編輯:姜華 來源: 今日J(rèn)ava
相關(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

2025-06-30 01:55:00

2025-06-20 08:16:44

JavaScripCRM項(xiàng)目

2017-06-02 10:01:53

2021-10-11 14:14:41

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

2018-11-14 10:00:07

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

2021-08-09 15:18:01

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

2021-04-20 08:02:08

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

2023-11-23 10:21:37

2020-11-16 07:26:25

賠償碼農(nóng)

2009-06-30 13:00:30

JSP入門

2019-11-11 08:45:52

HTTPTCP數(shù)據(jù)

2021-04-29 07:46:55

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

2020-09-07 14:30:37

JUC源碼CAS

2025-03-20 12:00:00

C++this指針匯編
點(diǎn)贊
收藏

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