短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个。

本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62操作,结果作为索引取出字符,

这样重复率大大降低。

[Java]代码

public static String[] chars = new String[] { "a", "b", "c", "d", "e", "f",

"g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",

"t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",

"6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I",

"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",

"W", "X", "Y", "Z" };

public static String generateShortUuid() {

StringBuffer shortBuffer = new StringBuffer();

String uuid = UUID.randomUUID().toString().replace("-", "");

for (int i = 0; i < 8; i++) {

String str = uuid.substring(i * 4, i * 4 + 4);

int x = Integer.parseInt(str, 16);

shortBuffer.append(chars[x % 0x3E]);

}

return shortBuffer.toString();

}

java 8位 uuid_JAVA生成短8位UUID详解相关推荐

  1. mysql 生成8位uuid_JAVA生成短8位UUID

    java 原创,转载需注明. 短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个. 本算法利用62个可打印字符,通过随机生成32位UUID,由于UU ...

  2. java 生成dump_java dump文件怎么生成和分析-JMAP用法详解

    jmap是java自带的工具 1. 查看整个JVM内存状态 jmap -heap [pid] 2. 查看JVM堆中对象详细占用情况 jmap -histo [pid] 3. 导出整个JVM 中内存信息 ...

  3. java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串...

    java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串 1 package com.zdz.test; ...

  4. c语言将两个16位变为一个32位,16位汇编第六讲汇编指令详解第第三讲(示例代码)...

    16位汇编第六讲汇编指令详解第第三讲 1.十进制调整指令 1. 十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果 2.分成压缩BCD码和非压缩BCD码调整 简而言之: 以前的时 ...

  5. Java中print、printf、println的区别 详解

    Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...

  6. java的markword_【转帖】Java工具结构与锁实现原理及MarkWord详解

    Java工具结构与锁实现原理及MarkWord详解 https://www.pianshen.com/article/2382167638/ 我们都知道,Java工具存储在堆(Heap)内存.那么一个 ...

  7. java源码系列:HashMap底层存储原理详解——4、技术本质-原理过程-算法-取模具体解决什么问题

    目录 简介 取模具体解决什么问题? 通过数组特性,推导ascii码计算出来的下标值,创建数组非常占用空间 取模,可保证下标,在HashMap默认创建下标之内 简介 上一篇文章,我们讲到 哈希算法.哈希 ...

  8. Java Web中的EL(表达式语言)详解

     Java Web中的EL(表达式语言)详解 表达式语言(Expression Language)简称EL,它是JSP2.0中引入的一个新内容.通过EL可以简化在JSP开发中对对象的引用,从而规范页面 ...

  9. pandas新字段(数据列)生成、使用np.where或者apply lambda函数结合if else生成新的字段,详解及实战

    pandas新字段(数据列)生成.使用np.where或者apply lambda函数结合if else生成新的字段,详解及实战 pandas apply用法: pandas apply方法的作用原理 ...

最新文章

  1. 十折交叉验证10-fold cross validation, 数据集划分 训练集 验证集 测试集
  2. 布线须知:无线AP采用PoE交换机供电的好处
  3. RequestMethod的参数的含义是?
  4. 【简洁写法】剑指 Offer 32 - I. 从上到下打印二叉树
  5. CSS 如何影响浏览器元素在文档中的排列?
  6. 曲师大教务系统服务器,曲阜师范大学教务处系统入口地址
  7. Python Tricks(十一)—— 阶乘的实现
  8. ZeroC Ice介绍与简单demo构建
  9. 视频、网络传输速率科普
  10. 9 个 yyds Java项目,可应对各种私活!
  11. 51个最佳jQuery教程和示例
  12. 谷歌浏览器设置默认,但是打不开外部超链接/点击超链接没反应
  13. swift airdrop_适用于Android的AirDrop:如何使用附近的Android分享
  14. 计算机培训普通话是什么,计算机二级培训开课+普通话证书领取+普通话测试练习资料(二)...
  15. JavaScript|JavaScript 高级语法——详细汇总
  16. 皮革行业分销渠道管理系统有效缩短供销链,提升渠道运营收益
  17. 浅谈对IT架构师的理解
  18. FileStream与StreamWriter区别
  19. 真实故事:他用了3天时间写个程序,日入30万
  20. web前端面试常问问题一(肝货)

热门文章

  1. Siamese目标跟踪:STMTrack: Template-free Visual Tracking with Space-time Memory Networks(CVPR2021)
  2. 读十年书,不如读懂这百句话
  3. 2023年06月个人工作生活总结
  4. python中的类属性、实例属性、类方法、实例方法
  5. QQ自动点赞PHP源码_QQ好友批量回名片赞工具-QQ自动点赞附易语言源码V1.0电脑版PC端回赞-西西软件下载...
  6. win10资源管理器右键没有映射网络驱动器
  7. projectwbs表_Microsoft Project制作WBS基本使用
  8. centos7学习笔记:开启虚拟机黑屏
  9. Outlook超大附件解决方案哪家强?可从四方面比较
  10. 转载:VGA/DVI/HDMI/DP/Type-C/雷电 显示接口对比介绍