java中使用uuid函数_java生成随机数
大家好,又见面了,我是你们的朋友全栈君。
什么是UUID?
UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符。UUID具有以下涵义:
经由一定的算法机器生成
为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。UUID的复杂特性在保证了其唯一性的同时,意味着只能由计算机生成。
非人工指定,非人工识别
UUID是不能人工指定的,除非你冒着UUID重复的风险。UUID的复杂性决定了“一般人“不能直接从一个UUID知道哪个对象和它关联。
在特定的范围内重复的可能性极小
UUID的生成规范定义的算法主要目的就是要保证其唯一性。但这个唯一性是有限的,只在特定的范围内才能得到保证,这和UUID的类型有关(参见UUID的版本)。
UUID是16字节128位长的数字,通常以36字节的字符串表示,示例如下:
3F2504E0-4F89-11D3-9A0C-0305E82C3301
其中的字母是16进制表示,大小写无关。
GUID(Globally Unique Identifier)是UUID的别名;但在实际应用中,GUID通常是指微软实现的UUID。
UUID的版本
UUID具有多个版本,每个版本的算法不同,应用范围也不同。
首先是一个特例--Nil UUID--通常我们不会用到它,它是由全为0的数字组成,如下:
00000000-0000-0000-0000-000000000000
Java源码:
packagetools.uuid;importjava.util.UUID;public classMyUUID {public staticString getUUID() {
UUID uuid=UUID.randomUUID();
String str=uuid.toString();
System.out.println(“原始UUID: ” +str);//去掉”-“符号
String temp = str.substring(0, 8) + str.substring(9, 13) + str.substring(14, 18) + str.substring(19, 23) + str.substring(24);
System.out.println(“去掉\”-\”符号: ” +temp);returntemp;
}//获得指定数量的UUID
public static String[] getUUID(intnumber) {if (number < 1) {return null;
}
String[] uuids= newString[number];for (int i = 0; i < number; i++) {
uuids[i]=getUUID();
}returnuuids;
}public static voidmain(String[] args) {
System.out.println(“—- 获取单个UUID —-“);
String uuid=getUUID();
System.out.println(“—- 获取多个UUID —-“);
String[] uuids= getUUID(5);for (int i = 0; i < uuids.length; i++) {
System.out.println(“uuids[” + i + “]=====” +uuids[i]);
}
}
}
运行结果:
—- 获取单个UUID —-原始UUID: f4958b2a-bdc8-4ea5-bed8-1246381c116a
去掉”-“符号: f4958b2abdc84ea5bed81246381c116a—- 获取多个UUID —-原始UUID: f1791418-6eb5-4538-bd2b-9f6547d8a967
去掉”-“符号: f17914186eb54538bd2b9f6547d8a967
原始UUID: e3b6451e-6073-4c11-9f35-b24b49b8fdab
去掉”-“符号: e3b6451e60734c119f35b24b49b8fdab
原始UUID: 9d53efac-d85e-486c-8bef-3009bb0654b0
去掉”-“符号: 9d53efacd85e486c8bef3009bb0654b0
原始UUID: 3c911454-034e-4b17-8daa-dd616b502744
去掉”-“符号: 3c911454034e4b178daadd616b502744
原始UUID: 9a634db6-b68b-4fa5-8389-b3ee35fc5992
去掉”-“符号: 9a634db6b68b4fa58389b3ee35fc5992
uuids[0]=====f17914186eb54538bd2b9f6547d8a967
uuids[1]=====e3b6451e60734c119f35b24b49b8fdab
uuids[2]=====9d53efacd85e486c8bef3009bb0654b0
uuids[3]=====3c911454034e4b178daadd616b502744
uuids[4]=====9a634db6b68b4fa58389b3ee35fc5992
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190496.html原文链接:https://javaforall.cn
相关文章
- JAVA三元运算符_java中三元运算符详解
- nextline函数_在JAVA中Scanner中的next()和nextLine()为什么不能一起使用?
- java开发常用四大框架_Java 后台开发框架[通俗易懂]
- java实现ajax_Ajax&Java
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java webservice 实例_Java WebService 简单实例(附实例代码)
- java生成license_使用truelicense实现用于JAVA工程license机制(包括license生成和验证)…
- java mutator,Java – 使用Accessor和Mutator方法「建议收藏」
- 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )
- 【Java 注解】自定义注解 ( 使用注解实现简单测试框架 )
- java 日志记录使用slf4j优于log4j的原因详解编程语言
- [五]java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用编程语言
- 如何使用Java连接MySQL数据库(java怎么连接mysql数据库)
- 实现使用Java代码实现MySQL数据库连接(java连接mysql数据库代码)
- java 为什么说,不推荐使用+来连接字符串详解编程语言
- Oracle与Java: 未来前瞻(oracle与java)
- Java轻松使用Redis实现数据高效存储(java使用redis)
- 检查使用Java检查Redis中Key过期情况(redisjava过期)
- Java中使用Redis实现过期功能(redisjava过期)
- 数据管理使用Redis管理Java过期数据(redisjava过期)
- Java解答Oracle使用更轻松的实现方式(oracle写成java)
- Oracle收购了Java一个伟大的转折点(java被oracle吗)
- 进行操作学会使用Java玩转Redis(在java中队redis)
- Java实现Redis队列锁功能(redis队列锁java)
- 本使用Oracle Java 进行升级新版本带来新体验(oracle java版)
- java在linux系统下开机启动无法使用sudo命令的原因及解决办法
- java多线程编程之慎重使用volatile关键字