public?static?UUID?randomUUID()?{
SecureRandom?ng?=?Holder.numberGenerator;
byte[]?randomBytes?=?new?byte[16];
ng.nextBytes(randomBytes);
randomBytes[6]?&=?0x0f;?/*?clear?version*/
randomBytes[6]?|=?0x40;?/*?set?to?version?4?*/
randomBytes[8]?&=?0x3f;?/*?clear?variant*/
randomBytes[8]?|=?0x80;?/*?set?to?IETF?variant?*/
return?new?UUID(randomBytes);//看到這裏沒,其實也是調用的帶參數的,只不過
//所帶參數的是給妳隨機出來的
}
//再看帶參數的
public?static?UUID?nameUUIDFromBytes(byte[]?name)?{MessageDigest?md;
try?{
md?=?MessageDigest.getInstance("MD5");
}?catch?(NoSuchAlgorithmException?nsae)?{
throw?new?InternalError("MD5?not?supported");
}
byte[]?md5Bytes?=?md.digest(name);//這裏就是對給的byte[]參數進行md5運算之後再進行計算UUID
md5Bytes[6]?&=?0x0f;?/*?clear?version*/
md5Bytes[6]?|=?0x30;?/*?set?to?version?3?*/
md5Bytes[8]?&=?0x3f;?/*?clear?variant*/
md5Bytes[8]?|=?0x80;?/*?set?to?IETF?variant?*/
return?new?UUID(md5Bytes);
}