天天看點

java uuid to long_關于Java的UUID

UUID或者UNID或者UID,是一個統一唯一辨別,可以用來标記文檔、資料或其它需要唯一辨別的東西。Java 5.0内置UUID的實作,見java.util.UUID. 下面代碼是找到的2種實作方式,随手測了一下,兩者時間效率居然出奇的相似,在10000000次循環中,均在660秒左右。

Java代碼  

java uuid to long_關于Java的UUID

import java.math.BigInteger;

import java.util.Random;

import java.util.UUID;

public class UUIDTest {

private static UUID uid = null;

private static final Random RANDOM = new Random();

public static String getUUID() {

uid = UUID.randomUUID();

String idstr = uid.toString().replace("-", "");

return idstr.toUpperCase();

}

public static String generateGUID(){

return new BigInteger(165, RANDOM).toString(36).toUpperCase();

}

public static void main(String[] args) {

int cycles = 100000000;

long start = System.currentTimeMillis();

for (int i = 0; i 

//System.out.println(getUUID());

getUUID();

}

long end = System.currentTimeMillis();

String msg = "Time(ms) of getUUID() " + cycles + " times: " ;

System.out.println (msg + (end - start));

long start1 = System.currentTimeMillis();

for (int i = 0; i 

//System.out.println(generateGUID());

generateGUID();

}

long end1 = System.currentTimeMillis();

msg = "Time(ms) of generateGUID() " + cycles + " times: " ;

System.out.println (msg + (end1 - start1));

}

}

2者所生成ID字串如下:

引用

FB0F88715B564691A85F28DBFDD57D90

E50999DA27624D7E81B89C47DF02DA92

E601B3C99AC4490E97EA0174860EEFDF

839DF94E497E45D09D5D7F34C531511F

54459B4DACF94097962A1C6017A35882

6A6CAF5667F74C24A28141CD287C44BE

7DF3E7F386934C4E9842E980E9E4C652

3370A0549E3C4C5EA3A5EFC53E5DC9B6

563F56BA980F43D3A07DF58B9F95F2EC

0968563C99E046B9944DFDD36CDDF5E2

GV9VQMTJC4NDFV5IB7N5IDWABQWF8M4M

LD0U9UKFPGG9LKKYHEWJSJ40OC57JHIQ

J9KTPM0Y9676256UNQTO7HFQG0G0CBDK

H0B4IVYNO99N918YIJ12PKA4T0R6P394

CTYE9DTF9IBUXXOR1SYCJYCRXD9H6KO9

2ZQ1CH3MGP5M3AOTFH1VJ3ZQ8M0CH2I5

MDGHQLHQ34A0Q9JNJ7S6WFAN8YV0M652

HVC2R84PT2ZKABL2FSSR84K9N5IG98WP

MGZ3NZJ5RS51KCL12KHLGURXCHZK8YNK

129RZPH0UPQO8SMCZZJFTY37G47T19KL

時間測試結果:

引用

Time(ms) of getUUID() 100000000 times: 669516

Time(ms) of generateGUID() 100000000 times: 663656