Java中生成的UUID全局唯一標識符
來源:程序員人生 發(fā)布時間:2016-05-10 08:55:02 閱讀次數(shù):3940次
GUID是1個128位長的數(shù)字,1般用16進制表示。算法的核心思想是結合機器的網(wǎng)卡、當?shù)貢r間、1個隨即數(shù)來生成GUID。從理論上講,如果1臺機器每秒產(chǎn)生10000000個GUID,則可以保證(幾率意義上)3240年不重復。UUID是1.5中新增的1個類,在java.util下,用它可以產(chǎn)生1個號稱全球唯1的ID。
UUID含義是通用唯1辨認碼 (Universally Unique Identifier),這 是1個軟件建構的標準,也是被開源軟件基金會 (Open Software Foundation, OSF) 的組織在散布式計算環(huán)境
(Distributed Computing Environment, DCE) 領域的1部分。UUID 的目的,是讓散布式系統(tǒng)中的所有元素,都能有唯1的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。如此1來,每一個人都可以建立不與其它人沖突的 UUID。在這樣的情況下,就不需斟酌數(shù)據(jù)庫建立時的名稱重復問題。目前最廣泛利用的 UUID,即是微軟的 Microsofts Globally Unique Identifiers (GUIDs),而其他重要的利用,則有 Linux ext2/ext3 檔案系統(tǒng)、LUKS
加密分割區(qū)、GNOME、KDE、Mac OS X 等等。
UUID的唯1缺點在于生成的結果串會比較長。
以下是代碼:
package cn.hncu.Telbook.utils;
import java.util.UUID;
public class GETuuid {
//取得全球唯1性的id
public static String getId(){
String id=UUID.randomUUID().toString();//生成的id942cd30b⑴6c8⑷49e⑻dc5-028f38495bb5中間含有橫杠,
用來生成數(shù)據(jù)庫的主鍵id是很實用的。 id=id.replace("-", "");//替換掉中間的那個斜杠
return id;
}
}
測試代碼:
package cn.hncu.Telbook.Test;
import org.junit.Test;
import cn.hncu.Telbook.utils.GETuuid;
public class Test1 {
@Test
public void Test(){
int n=3;
while(n-->0){
String id =GETuuid.getId();
System.out.println(id);
/*
* 942cd30b⑴6c8⑷49e⑻dc5-028f38495bb5
535c010d⑹3d1⑷86e⑼12e-af274dcebe42
8827dcfa-e4a5⑷0e8⑻b5f-cca60eae70e8
*/
}}
}
輸出結果:
942cd30b⑴6c8⑷49e⑻dc5-028f38495bb5
535c010d⑹3d1⑷86e⑼12e-af274dcebe42
8827dcfa-e4a5⑷0e8⑻b5f-cca60eae70e8
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈