_02_使用UUID获取唯一标识
[文章標(biāo)題:_02_使用UUID獲取唯一標(biāo)識(shí)] [202012-29 03:39:00]
需求:
? 很多時(shí)候我們會(huì)需要用到 生成不重復(fù)的唯一標(biāo)識(shí)的 的功能,如數(shù)據(jù)庫表中的主鍵等。
實(shí)現(xiàn):
? 使用UUID生成 唯一、不重復(fù) 的字符串。
import java.util.UUID; public class UUIDUtils {public static String getUUID(){return UUID.randomUUID().toString().replace("-","");} }什么是UUID:
? UUID 通用唯一識(shí)別碼(Universally Unique Identifier),UUID出現(xiàn)的目的,是為了讓分布式系統(tǒng)可以不借助中心節(jié)點(diǎn),就可以生成UUID來標(biāo)識(shí)一些唯一的信息。UUID是 國(guó)際標(biāo)準(zhǔn)化組織 ISO 提出的一個(gè)概念。UUID是一個(gè)128比特的數(shù)值,這個(gè)數(shù)值可以通過一定的算法計(jì)算出來。目前最廣泛應(yīng)用的UUID,是微軟公司微軟公司的全局唯一標(biāo)識(shí)符(GUID)。
UUID在發(fā)展過程中,為了適應(yīng)不同的需要,產(chǎn)生了5個(gè)版本:
- uuid1: 基于時(shí)間戳、機(jī)器MAC地址生成。由于使用MAC地址,可以保證全球范圍的唯一性。
- uuid2: 只基于時(shí)間戳,不常用。
- uuid3: 基于namespace和一個(gè)自定義字符串,不常用。
- uuid4: 只基于隨機(jī)數(shù),最常用,但不推薦,重復(fù)幾率不太能讓人接受。
- uuid5: 只基于namespace,不常用。
UUID組成:
UUID按照開放軟件基金會(huì)(OSF)制定的標(biāo)準(zhǔn)計(jì)算,用到了以太網(wǎng)卡地址、納秒級(jí)時(shí)間、芯片ID碼和許多可能的數(shù)字。
UUID由以下幾部分的組合:
(1)當(dāng)前日期和時(shí)間,UUID的第一個(gè)部分與時(shí)間有關(guān),如果你在生成一個(gè)UUID之后,過幾秒又生成一個(gè)UUID,則第一個(gè)部分不同,其余相同。
(2)時(shí)鐘序列。
(3)全局唯一的IEEE機(jī)器識(shí)別號(hào),如果有網(wǎng)卡,從網(wǎng)卡MAC地址獲得,沒有網(wǎng)卡以其他方式獲得。
標(biāo)準(zhǔn)的UUID格式為:xxxxxxxx-xxxx-Axxx-Bxxx-xxxxxxxxxxxx (8-4-4-4-12)。
A那個(gè)位置,代表版本號(hào),由于UUID的標(biāo)準(zhǔn)實(shí)現(xiàn)有5個(gè)版本,所以只會(huì)是1,2,3,4,5
B那個(gè)位置,只會(huì)是8,9,a,b
總結(jié)
以上是生活随笔為你收集整理的_02_使用UUID获取唯一标识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css 所有选择器 实例与总结
- 下一篇: 若依部署文档