关闭

Java之——生成短8位UUID

标签: javaUUID
4581人阅读 评论(0) 收藏 举报
分类:

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51136133

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

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

这样重复率大大降低。

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

}

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Java中获取32位UUID(自认为最简便版)

通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。UUID的目的,是让分散式系统...
  • sdjzxa333
  • sdjzxa333
  • 2013-09-06 11:10
  • 14938

java.util.UUID通用唯一识别码的介绍

UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OS...
  • u011467537
  • u011467537
  • 2015-01-28 09:40
  • 4086

Java中的UUID类(生成唯一ID)

GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义...
  • liuzx32
  • liuzx32
  • 2012-07-30 14:54
  • 3125

java生成8位UUID

  • 2015-09-18 12:49
  • 854B
  • 下载

java 生成22位UUID 改造

背景:数据库的前期设计,主键用的是uuid,但这个是大数据量的应用。经过n久的折腾,数据大于1亿条了。返回去看表,发现,表的很多字段是varchar2的,但是长度不超过20字符。占据大部分空间的居然是...
  • sskicgah
  • sskicgah
  • 2013-10-21 10:31
  • 13396

Java中生成的UUID(全局唯一标识符-----(唯一)-------)

在写程序中,我们涉及id的问题时候,时常会担心重复的问题,这个就可以解决id重复问题
  • yangxin_blog
  • yangxin_blog
  • 2015-10-22 07:55
  • 15304

JAVA生成短8位UUID

短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个。 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUI...
  • andy_miao858
  • andy_miao858
  • 2013-07-27 15:39
  • 37671

云客Drupal8源码分析之通用唯一识别码UUID

先来看一个问题:假设一个网络系统每秒钟需要保存数十万来自用户提交的信息,并分配一个id给每条信息用于以后唯一标识它,那么怎么产生这个id呢?不能重复又要足够快以支持高并发,有这么强大的单台服务器吗?即...
  • u011474028
  • u011474028
  • 2017-04-28 14:10
  • 509

java生成短8位uuid

短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个。 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将...
  • waterCabin
  • waterCabin
  • 2015-12-09 10:15
  • 795

8位uuid

import uuid def generate_short_uuid(): # 生成8位码 char_set = ["a", "b", "c", "d", "e", "f&q...
  • dqchouyang
  • dqchouyang
  • 2017-04-18 17:43
  • 481
    个人资料
    • 访问:1980950次
    • 积分:25856
    • 等级:
    • 排名:第272名
    • 原创:800篇
    • 转载:8篇
    • 译文:0篇
    • 评论:296条
    博客专栏
    Android

    文章:80篇

    阅读:229669
    Python

    文章:49篇

    阅读:32753
    搜索优化

    文章:20篇

    阅读:25160
    Nginx

    文章:17篇

    阅读:52407
    Dubbo

    文章:20篇

    阅读:40442
    JMS

    文章:13篇

    阅读:11022
    Netty

    文章:1篇

    阅读:1688
    Redis

    文章:18篇

    阅读:89662
    Memcached

    文章:9篇

    阅读:44374
    设计模式

    文章:22篇

    阅读:47411
    Mycat

    文章:20篇

    阅读:24674
    Web前端

    文章:22篇

    阅读:81336
    Linux

    文章:76篇

    阅读:217397
    JVM

    文章:15篇

    阅读:49888
    J2EE

    文章:74篇

    阅读:269838
    Java

    文章:152篇

    阅读:489999
    Hadoop生态

    文章:121篇

    阅读:192993
    MySQL

    文章:129篇

    阅读:252424
    最新评论