java开发_UUID(Universally Unique Identifier,全局唯一标识符)和GUID(Globally Unique Identifier,全球唯一标识符)
GUID : 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。
所以GUID就是UUID。
GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。
从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。
下面是一个demo:
package com.mytest;
import java.util.UUID;
* JDK1.5以上
public class UUIDTest {
public static void main(String[] args) {
UUID uuid = UUID.randomUUID();
System.out.println(uuid);
}
输出结果:
1 fd61384b-05a5-4030-885e-a6bd3b60ef1a
下面是去除UUID中的"-"
1 /**
3 */
4 package com.b510;
6 import java.util.UUID;
8 /**
9 * @date 2012-11-7
10 * @author xhw
11 *
12 */
13 public class UUIDTest {
14 /**
15 * 获得一个去掉"-"符号的UUID
16 *
17 * @return String UUID
18 */
19 public static String getUUID() {
20 String s = UUID.randomUUID().toString();
21 // 去掉"-"符号
22 return s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);
23 }
25 /**
26 * 获得一个去掉"-"符号的UUID
27 *
28 * @return
29 */
30 public static String getUuid() {
31 String s = UUID.randomUUID().toString();
32 // 去掉"-"符号
33 return s.replace("-", "");
34 }
36 /**
37 * 获得指定数目的UUID
38 *
39 * @param number
40 * int 需要获得的UUID数量
41 * @return String[] UUID数组
42 */
43 public static String[] getUUID(int number) {
44 if (number < 1) {
45 return null;
46 }
47 String[] ss = new String[number];
48 for (int i = 0; i < number; i++) {
49 if (i % 2 == 0) {
50 ss[i] = getUuid();
51 } else {
52 ss[i] = getUUID();
53 }
54 }
55 return ss;
56 }
58 public static void main(String[] args) {
59 String[] ss = getUUID(10);
60 for (int i = 0; i < ss.length; i++) {
61 System.out.println(ss[i]);
62 }
63 }
65 }
输出结果:
1 /**
2 ca31b9c6bff04ecfb5dfd1675905338d
3 78af094061c04fc6b578a0f62aa09373
4 51f228083c6e4dcb855a8e733efded7c
5 fceca14fdc194d889c05c1dcf8ccaf3b
6 4c7695ed08494b978fa9737dfe36f6a5
7 b7573dbadfe84ba2b3659d1e49f8bf08
8 f4391ba40f114ad19711a507971a994b
9 6e1d576301c749bcb7b7943c1782a920
10 fb60bd4fe28d47c3975bb0eb6834e84e
11 5238ba7d27c7452698e075f64472fadf
12 */
上面提供了两种方法,去除UUID中的"-"
1 /**
2 * 获得一个去掉"-"符号的UUID
3 *
4 * @return String UUID
5 */
6 public static String getUUID() {
7 String s = UUID.randomUUID().toString();
8 // 去掉"-"符号
9 return s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);
10 }
12 /**
13 * 获得一个去掉"-"符号的UUID
14 *
15 * @return