當前位置:編程學習大全網 - 網站源碼 - 使用java.util.UUID生成唯壹標識,為什麽生成唯壹標識的方法有些還需要參數?

使用java.util.UUID生成唯壹標識,為什麽生成唯壹標識的方法有些還需要參數?

//先看不加參數的源碼

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);

}

  • 上一篇:python寫的程序,轉成了exe文件,怎麽進行反編譯為python源碼
  • 下一篇:快樂星球第壹部樂樂和馬翔宇玩傳奇的是那壹集?
  • copyright 2024編程學習大全網