Java 生成 UUID[通俗易懂]

Java 生成 UUID[通俗易懂]1.UUID简介UUID含义是通用唯一识别码(UniversallyUniqueIdentifier),这是一个软件建构的标准。也是被开源软件基金会(OpenSoftwareFou

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.UUID 简介

   UUID 含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准。

   也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。

   UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。

   如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。

2.UUID 组成

   UUID保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。

   按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

UUID由以下几部分的组合:

(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。

(2)时钟序列。

(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

   UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。

   标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)。

3.项目实战

    UUID 来作为数据库数据表主键是非常不错的选择,保证每次生成的UUID 是唯一的。
a.生成 UUID

   public static void main(String[] args) {
        for(int i=0;i<10;i++){
            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
            System.out.println(uuid);
        }
    } 

b.生成指定数目的 UUID

    /**
     * 获得指定数目的UUID 
     * @param number int 需要获得的UUID数量 
     * @return String[] UUID数组 
     */
    public static String[] getUUID(int number){
        if(number < 1){
            return null;
        }
        String[] retArray = new String[number];
        for(int i=0;i<number;i++){
            retArray[i] = getUUID();
        }
        return retArray;
    }

    /**
     * 获得一个UUID 
     * @return String UUID 
     */
    public static String getUUID(){
        String uuid = UUID.randomUUID().toString();
        //去掉“-”符号 
        return uuid.replaceAll("-", "");
    }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166739.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于 Sensor flicker/banding现象的解释「建议收藏」

    关于 Sensor flicker/banding现象的解释「建议收藏」目录1、基本概念2、30fps,1帧内banding过程演示3、30fps,帧与帧之间banding过程演示4、25fps,帧与帧之间banding过程演示5、总结flicker交流电网中的传输的能量并不是稳定不变的,而是随着一个固定频率变化的,这个频率一般被称为工频,例如中国是50Hz,美国是60Hz。工频由电力系统决定。工频的带来的这种能量变化称为flicker。下面以50HZ为例进行解释,交流电以1/50s,即20ms的周期进行变化,其变化规律如图所示:而对于能量来说,并没有正负之分,因此能量

    2022年10月13日
    0
  • 真正的学懂三极管入门篇(经典)「建议收藏」

    真正的学懂三极管入门篇(经典)「建议收藏」______________________________________________________________________________________________________________________________________不要让温床称为埋葬你的坟墓!要有危机意识,忧患意识,要为明天考虑!禁忌:安于现状,不求上进,不懂得学习,不能恰当

    2022年6月22日
    27
  • java 正则表达式详细讲解和全面案例,和根据正则筛选需要内容「建议收藏」

    java 正则表达式详细讲解和全面案例,和根据正则筛选需要内容「建议收藏」java 正则表达式详细讲解和全面案例,和根据正则筛选需要内容

    2022年4月23日
    48
  • 参数从double转换到int,可能_python中int类型转化为float

    参数从double转换到int,可能_python中int类型转化为floattf.to_int32函数:tf.to_int32(x,name=’ToInt32′)函数参数:x:一个 Tensor、SparseTensor、list或ndarray name:操作的名称(可选)。函数返回值:tf.to_int32函数返回一个Tensor或SparseTensor,与x(类型为int32)具有相同的形状。例子:…

    2022年9月15日
    0
  • 八种用Python实现定时执行任务的方案,一定有你用得到的!

    八种用Python实现定时执行任务的方案,一定有你用得到的!我们在日常工作中,常常会用到需要周期性执行的任务。一种方式是采用Linux系统自带的crond结合命令行实现;一种方式是直接使用Python;于是我把常见的Python定时任务实现方法整

    2022年7月1日
    27
  • wget404错误_错误403谷歌

    wget404错误_错误403谷歌报错信息Resolvings3.ap-northeast-1.amazonaws.com(s3.ap-northeast-1.amazonaws.com)…52.219.8.176Connectingtos3.ap-northeast-1.amazonaws.com(s3.ap-northeast-1.amazonaws.com)|52.219.8.176|:443…connected.HTTPrequestsent,awaitingresponse…403Forbidden

    2025年5月27日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号