首页

两种方式生成身份统一识别码ID(数字编码、字母数组组合编码)的工具类IdUtils

标签:UUID,工具类,java,随机码,身份识别码,数据库序列码,唯一码,SecureRandom,序列sequence     发布时间:2016-08-25   

提供两种id生成方式分别可以生成数字编码和字母加数字混合编码可以满足不同的应用场景,一种基于时间戳+随机数方式对于id识别要求长度短或数字需求比较适合,另外一种组合时间戳(纳秒级)+全局唯一的IEEE机器识别号(MAC..)+时钟序列(自增序列数)+随机数(Random 子类 SecureRandom 强伪随机数据类产生(全球唯一码,时间空间的唯一性,适用于持久化数据id、序列sequence等要求比较高id识别场景),代码如下

 package com.xwood.util;@b@@b@import java.util.UUID;@b@@b@/**@b@ * 用于生成ID的工具类@b@ * @author nijun@b@ */@b@public class IdUtils {@b@    @b@     /**@b@     * 获取固定长度的字符串,长度不够在前面补充0@b@     * @b@     * @param str@b@     * @param length@b@     * @return@b@     */@b@    public static String getFixedLengthStr(String str, int length) {@b@        if (str==null||"".equals(str)) {@b@            return null;@b@        }@b@        if (str.length() < length) {@b@            for (int i = 0; i < length; i++) {@b@                str = "0" + str;@b@                if (str.length() == length) {@b@                    break;@b@                }@b@            }@b@        }@b@        return str;@b@    }    @b@    @b@  /**@b@   * 全球唯一码,时间空间的唯一性,@b@   * 根据时间戳(纳秒级)+全局唯一的IEEE机器识别号(MAC..)+时钟序列(自增序列数)+随机数(Random 子类 SecureRandom 强伪随机数据类产生)@b@   * @param idPrefix @b@   * @return@b@   */@b@  public static String generate(String idPrefix) {@b@    return idPrefix + UUID.randomUUID().toString();@b@  }@b@@b@@b@  /**@b@   * 时间戳+随机数(w级)@b@   * @param idPrefix@b@   * @return@b@   */@b@  public static String generateId(String idPrefix) {@b@    String str = (int) (Math.random() * 10000) + "";@b@    return idPrefix + System.currentTimeMillis() + getFixedLengthStr(str, 4);@b@  }@b@  @b@    public static void main(String[] args) {@b@        System.out.println(IdUtils.generate(""));@b@        System.out.println(IdUtils.generateId(""));@b@      }@b@  @b@}

运行结果

beded500-10c4-44e4-904e-4da9d95c7df7@b@14721208909925999
<<推荐下载>>
  • (1) 阿里巴巴Java开发手册8种不同版本
  • (2) Web前端开发视频教程
  • (3) 30+明星讲师PPT课件分享一线大厂架构实战经验
  • (4) java开发_架构篇_视频资源分享_v2208
  • (5) java开发_高级篇_视频资源分享_v2208
  • (6) java开发_进阶篇(中级)_视频资源分享_v2208
  • (7) java开发_入门篇_视频资源分享_v2208
  • (8) 微信小程序开发视频1+167源码+实战demo等下载
  • (9) easy-shopping电子商务java源码(附脚本和安装文档说明)下载
  • (10) java常用的72份知名实用的电子书下载
  • (11) java开发性能优化资料整理大全(8份电子文档+3份实战优化)下载
  • (12) 9个常用的算法设计资料和100以上视频课件内容下载
  • (13) vue开发必备常用手册16件下载
  • (14) 21种不同技术集群方案(es、flink、redis、nginx、zk、lvs、kafka、mysql、k8s等)参考资料下载
  • (15) 20种技术代码规范(js/java/dba/阿里/华为/oracle/mysql等)参考资料下载
  • (16) 微服务五套资料(0-1,架构设计,springcloud,nacos等)下载
  • (17) 架构师(28知识图谱+3套简历模板+6套架构实战文档等)完整资料整理下载
  • (18) 大数据18套实战基础知识+8套简历模板下载
  • (19) 并发编程全套(7套+阿里巴巴+亿级实战等)实战资料下载
  • (20) Kafka九套学习整理知识点全套(面试+笔记+代码api+命令+容备等)资料下载
  • (21) java全套9个不同方向类型的面试题(基础+核心+大厂+架构师+近万套题库等)下载
  • (22) JAVA开发常用API帮助文档大全(超52种以上技术资料,高手必备)下载
  • (23) springcloud超详细139件全套学习实战资料( 视频课件+源码demo+文档资料等)下载
  • 更多推荐>>
  • <<热门文章>>