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 /** 2 * 3 */ 4 package com.b510; 5 6 import java.util.UUID; 7 8 /** 9 * @date -11-710 * @author xhw11 * 12 */13 public class UUIDTest {14/**15* 获得一个去掉"-"符号的UUID16* 17* @return String UUID18*/19public 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}24 25/**26* 获得一个去掉"-"符号的UUID27* 28* @return29*/30public static String getUuid() {31 String s = UUID.randomUUID().toString();32 // 去掉"-"符号33 return s.replace("-", "");34}35 36/**37* 获得指定数目的UUID38* 39* @param number40* int 需要获得的UUID数量41* @return String[] UUID数组42*/43public 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}57 58public 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}64 65 }
输出结果:
1 /** 2 ca31b9c6bff04ecfb5dfd1675905338d 3 78af094061c04fc6b578a0f62aa09373 4 51f228083c6e4dcb855a8e733efded7c 5 fceca14fdc194d889c05c1dcf8ccaf3b 6 4c7695ed08494b978fa9737dfe36f6a5 7 b7573dbadfe84ba2b3659d1e49f8bf08 8 f4391ba40f114ad19711a507971a994b 9 6e1d576301c749bcb7b7943c1782a9 fb60bd4fe28d47c3975bb0eb6834e84e11 5238ba7d27c7452698e075f64472fadf12 */
上面提供了两种方法,去除UUID中的"-"
1 /** 2* 获得一个去掉"-"符号的UUID 3* 4* @return String UUID 5*/ 6public 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}11 12/**13* 获得一个去掉"-"符号的UUID14* 15* @return16*/17public static String getUuid() {18 String s = UUID.randomUUID().toString();19 // 去掉"-"符号20 return s.replace("-", "");21}
UUID由以下几部分的组合:
(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同
(2)时钟序列
(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得
缺点:UUID的唯一缺陷在于生成的结果串会比较长
java开发_UUID(Universally Unique Identifier 全局唯一标识符)和GUID(Globally Unique Identifier 全球唯一标识符)...