不用導包,直接寫了全路徑
public
static string generatoruuidandreplace
(boolean replace)
return uuid;
}
傳值true則去除-,傳值false保留-
點到randomuuid()方法裡面可以看到
public
static uuid randomuuid()
打個斷點檢視一下流程
可以看出
securerandom ng = holder.numbergenerator;
byte
randombytes =
newbyte[16
];
這兩句**是建立乙個16位的byte陣列,後續**賦值。
說明了
ng.
nextbytes
(randombytes)
;
這句**是給byte陣列賦值的。
這裡只是將byte陣列設定為版本4,並設定為ietf變體;
點開uuid的有參構造
private
uuid
(byte
data)
使用位元組陣列構造新uuid的私有建構函式。這裡有兩個屬性值mostsigbits和leastsigbits在tostring()方法裡面有呼叫。點進去可以看到
public string tostring()
將uuid物件轉換成uuid格式的字串,點進digits方法裡面
private
static string digits
(long val,
int digits)
digits方法的作用是返回由指定數量的十六進製制數字表示的val。tohexstring將long型別轉換成字串型別,substring是切割字串用的,這裡是除去第乙個字元
最後,看一下是怎麼生成隨機byte陣列的:
通過 ng.nextbytes(randombytes); 可以點進去看到
public
synchronized
void
enginenextbytes
(byte
var1)
int var7 =
this
.remcount;
int var3;
int var6;
if(var7 >0)
this
.remcount += var3;
var2 += var3;
}while
(var2 < var1.length)
this
.remcount += var3;
}this
.remainder = var4;
this
.remcount %=20;
}
UUID的使用及其原理
首先,uuid的使用 生成隨機的uuid string uuid uuid.randomuuid tostring replaceall 而它的原理呢?uuid由以下幾部分的組合 1 當前日期和時間,uuid的第乙個部分與時間有關,如果你在生成乙個uuid之後,過幾秒又生成乙個uuid,則第乙個部分...
磁碟UUID以及卷標
背景 使用再生龍整個磁碟對拷後,存在uuid一樣,卷標一樣的情況,需要進行修改,否則啟動可能出現問題。命令如下 1 sudo blkid 或blkid 顯示磁碟資訊 檢視硬碟uuid blkid dev sda5 ls l dev disk by uuid 2 修改uuid uuidgen 會返回乙...
UUID的定義以及作用
uuid含義是通用唯一識別碼 universally unique identifier 這 是乙個軟體建構的標準,也是被開源軟體 會 open software foundation,osf 的組織應用在分布式計算環境 distributed computing environment,dce 領...