摘要:參考這里面的回答,就是利用無符號右移,每位轉(zhuǎn)換為制字符這位仁兄也參考了別人的就不列舉了思路為位,取高低位分別處理,轉(zhuǎn)為制字符,我沒有按照的字符表來,隨著自己的性子慣了,也沒有字節(jié)轉(zhuǎn)為字節(jié),參考別人直接位每低位轉(zhuǎn)為對應(yīng)一個制字符數(shù)組這樣其實(shí)最
參考
http://stackoverflow.com/ques... 這里面rharari的回答,就是利用無符號右移,每6位轉(zhuǎn)換為64制字符
http://blog.csdn.net/sskicgah... 這位仁兄也參考了別人的就不列舉了
思路UUID為128位,取高低64位分別處理,轉(zhuǎn)為64制字符,我沒有按照Base64的字符表來,隨著自己的性子慣了,也沒有3字節(jié)轉(zhuǎn)為4字節(jié),參考別人直接64位每低6位轉(zhuǎn)為int對應(yīng)一個64制字符數(shù)組(這樣其實(shí)最后一組只有4位轉(zhuǎn)為64制字符)
public class GenerateShortUUID { private final static char[] DIGITS64 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_".toCharArray(); public static String next() { UUID u = UUID.randomUUID(); // return u.toString(); return toIDString(u.getMostSignificantBits()) + toIDString(u.getLeastSignificantBits()); } private static String toIDString(long l) { char[] buf = "00000000000".toCharArray(); // 限定11位長度 int length = 11; long least = 63L; // 0x0000003FL do { buf[--length] = DIGITS64[(int) (l & least)]; // l & least取低6位 /* 無符號的移位只有右移,沒有左移 * 使用“>>>”進(jìn)行移位 */ l >>>= 6; } while (l != 0); return new String(buf); } public static void main(String[] args) { long time = System.currentTimeMillis(); for (int i=0; i<1000000L; i++) { next(); } System.out.println(System.currentTimeMillis() - time); } }
效率之前有測試過忘記了,應(yīng)該還可以,你們測試過的話可以告訴我。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/74137.html
摘要:規(guī)范定義來自于發(fā)布的一個規(guī)范。其中的字母是進(jìn)制表示,大小寫無關(guān)。在里面的使用的例子其中,最后的個字符就是我電腦網(wǎng)卡的地址版本安全的安全的和基于時間的算法相同,但會把時間戳的前位置換為的或。 一、簡介 UUID,是Universally Unique Identifier的縮寫,UUID出現(xiàn)的目的,是為了讓分布式系統(tǒng)可以不借助中心節(jié)點(diǎn),就可以生成UUID來標(biāo)識一些唯一的信息; GUID,...
摘要:序本文主要來聊聊分布式的生成方案。分布式的生成,以為代表的,系列算法采用的就是劃分命名空間并行生成的思路。 序 本文主要來聊聊分布式id的生成方案。 目標(biāo) 業(yè)務(wù)系統(tǒng)需要什么樣的ID生成器中提出了幾點(diǎn)目標(biāo): 唯一性 時間相關(guān) 粗略有序 可反解 可制造 主要思路 對于每個標(biāo)識,都需要有一個命名空間(namespace),來保證其相對唯一性。分布式的ID生成,以Twitter Snowf...
摘要:用戶指定一個名字空間和一個字符串,通過散列,生成。字符串本身需要是唯一的。。雖然是基于隨機(jī)數(shù),但是重復(fù)的可能性可以忽略不計(jì),因此該版本也是被經(jīng)常使用的版本。。當(dāng)前正在使用的。。 UUID的生成策略: UUID的方式能生成一串唯一隨機(jī)32位長度數(shù)據(jù),它是無序的一串?dāng)?shù)據(jù),按照開放軟件基金會(OSF)制定的標(biāo)準(zhǔn)計(jì)算,UUID的生成用到了以太網(wǎng)卡地址、納秒級時間、芯片ID碼和許多可能的數(shù)字。U...
摘要:我的思路大體是用網(wǎng)絡(luò)范圍內(nèi)唯一的字符串為標(biāo)識去邀請好友,邀請者給個狀態(tài)位代表邀請者,并給他綁定個唯一。本人建立個群作為去轉(zhuǎn)盤網(wǎng)的官方群,人數(shù)現(xiàn)在也不多,如果有興趣的話來逛逛吧,多個粉絲去轉(zhuǎn)盤多一份熱鬧,群號 花了一年時間做了個網(wǎng)盤下載站點(diǎn),有興趣的朋友可以看看站名:去轉(zhuǎn)盤網(wǎng)其中有個需求是想模擬百度網(wǎng)盤的邀請好友注冊功能,想了很久果然皇天不負(fù)有心人,終于整理出個思路,并且附上代碼,希望各...
閱讀 3385·2021-11-24 09:38
閱讀 1385·2021-11-22 15:08
閱讀 1454·2021-09-29 09:35
閱讀 475·2021-09-02 15:11
閱讀 1304·2019-08-30 12:55
閱讀 385·2019-08-29 17:16
閱讀 492·2019-08-29 11:30
閱讀 415·2019-08-26 13:23