java.util.UUID
类生成,具有非常低的碰撞风险。java.util.Random
类来实现。但需要注意的是,完全随机的数列可能在长时间运行中产生重复。博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《java 面试题大全》 🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭 《MYSQL从入门到精通》数据库是开发者必会基础之一~ 🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!💻⌨
代码和注释都有大家根据自己需求自取即可;
package com.example.democrud.democurd.uuid;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;
public class uuid {
public static void main(String[] args) {
System.out.println("----------------------random随机数--------------------");
//random随机数
Random random = new Random();
//取(10000-99999)的数,random出来0-89999的数,再加10000就达到效果。
//3个8 代表获取的随机的值 是3位数的
int id=random.nextInt(8888)+1000;
System.out.println("random随机数==>"+id);
UUID uuid = UUID.randomUUID();
System.out.println("原生uuid==>"+uuid);
System.out.println("----------------------UUID随机数 常用--------------------");
String str = uuid.toString();
String uuidStr = str.replace("-", "");
System.out.println(uuidStr);
System.out.println("----------------------UUID随机数 根据一个符合UUID格式的字符串获取--------------------");
UUID uuid1 = UUID.fromString("095c64fe-c5bf-11ea-aec6-a402b9e2b04d");
System.out.println(uuid1);
System.out.println("----------------------UUID随机数 根据字符串获取--------------------");
UUID uuid2 = UUID.nameUUIDFromBytes("身份证号码".getBytes());
System.out.println(uuid2);
UUID uuid21 = UUID.nameUUIDFromBytes("身份证号码".getBytes());
System.out.println(uuid21);
System.out.println("通过demo得出相同字符得除的加密是相同的");
UUID uuid3 = UUID.nameUUIDFromBytes("身份证号码11".getBytes());
System.out.println(uuid3);
System.out.println("----------------------生成随机ID--------------------");
//生成6位随机数字
System.out.println((int)((Math.random()*9+1)*100000));
//生成5位随机数字
System.out.println((int)((Math.random()*9+1)*10000));
//生成4位随机数字
System.out.println((int)((Math.random()*9+1)*1000));
//生成3位随机数字
System.out.println((int)((Math.random()*9+1)*100));
//生成2位随机数字
System.out.println((int)((Math.random()*9+1)*10));
//生成1位随机数字
System.out.println((int)((Math.random()*9+1)));
System.out.println("----------------------生成时间UUID随机数--------------------");
Date date=new Date();
DateFormat format = new SimpleDateFormat("yyyyMMdd");
String time = format.format(date);
int hashCodeV = UUID.randomUUID().toString().hashCode();
if (hashCodeV < 0) {//有可能是负数
hashCodeV = -hashCodeV;
}
// 0 代表前面补充0
// 11 代表长度为11 时间后面值的长度,他的长度的增加与减少是靠增加0 与去掉0来处理的
// d 代表参数为正数型
System.out.println("当前时间年月日"+time);
System.out.println(time + String.format("%011d", hashCodeV));
// 13 代表长度为13 不足的需要增加0补充
System.out.println(time + String.format("%013d", hashCodeV));
}
}
运行结果如下:
----------------------random随机数--------------------
random随机数==>1289
原生uuid==>97bc24f0-d12e-4184-b970-46a34dd53f06
----------------------UUID随机数 常用--------------------
97bc24f0d12e4184b97046a34dd53f06
----------------------UUID随机数 根据一个符合UUID格式的字符串获取--------------------
095c64fe-c5bf-11ea-aec6-a402b9e2b04d
----------------------UUID随机数 根据字符串获取--------------------
84e0cb5d-57ed-395b-8cc0-4b4ab9a7997b
84e0cb5d-57ed-395b-8cc0-4b4ab9a7997b
通过demo得出相同字符得除的加密是相同的
4b5b1bc6-86d1-390e-af96-0acd922f308f
----------------------生成随机ID--------------------
112926
52122
9081
109
43
1
----------------------生成时间UUID随机数--------------------
当前时间年月日20230202
2023020200914093716
202302020000914093716
不足之处多多谅解;有其他更好的方式,欢迎留言;
代码和注释都有大家根据自己需求自取即可;
package com.example.democrud.democurd.uuid;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;
public class uuid {
public static void main(String[] args) {
System.out.println("----------------------random随机数--------------------");
//random随机数
Random random = new Random();
//取(10000-99999)的数,random出来0-89999的数,再加10000就达到效果。
//3个8 代表获取的随机的值 是3位数的
int id=random.nextInt(8888)+1000;
System.out.println("random随机数==>"+id);
UUID uuid = UUID.randomUUID();
System.out.println("原生uuid==>"+uuid);
System.out.println("----------------------UUID随机数 常用--------------------");
String str = uuid.toString();
String uuidStr = str.replace("-", "");
System.out.println(uuidStr);
System.out.println("----------------------UUID随机数 根据一个符合UUID格式的字符串获取--------------------");
UUID uuid1 = UUID.fromString("095c64fe-c5bf-11ea-aec6-a402b9e2b04d");
System.out.println(uuid1);
System.out.println("----------------------UUID随机数 根据字符串获取--------------------");
UUID uuid2 = UUID.nameUUIDFromBytes("身份证号码".getBytes());
System.out.println(uuid2);
UUID uuid21 = UUID.nameUUIDFromBytes("身份证号码".getBytes());
System.out.println(uuid21);
System.out.println("通过demo得出相同字符得除的加密是相同的");
UUID uuid3 = UUID.nameUUIDFromBytes("身份证号码11".getBytes());
System.out.println(uuid3);
System.out.println("----------------------生成随机ID--------------------");
//生成6位随机数字
System.out.println((int)((Math.random()*9+1)*100000));
//生成5位随机数字
System.out.println((int)((Math.random()*9+1)*10000));
//生成4位随机数字
System.out.println((int)((Math.random()*9+1)*1000));
//生成3位随机数字
System.out.println((int)((Math.random()*9+1)*100));
//生成2位随机数字
System.out.println((int)((Math.random()*9+1)*10));
//生成1位随机数字
System.out.println((int)((Math.random()*9+1)));
System.out.println("----------------------生成时间UUID随机数--------------------");
Date date=new Date();
DateFormat format = new SimpleDateFormat("yyyyMMdd");
String time = format.format(date);
int hashCodeV = UUID.randomUUID().toString().hashCode();
if (hashCodeV < 0) {//有可能是负数
hashCodeV = -hashCodeV;
}
// 0 代表前面补充0
// 11 代表长度为11 时间后面值的长度,他的长度的增加与减少是靠增加0 与去掉0来处理的
// d 代表参数为正数型
System.out.println("当前时间年月日"+time);
System.out.println(time + String.format("%011d", hashCodeV));
// 13 代表长度为13 不足的需要增加0补充
System.out.println(time + String.format("%013d", hashCodeV));
}
}
运行结果如下:
----------------------random随机数--------------------
random随机数==>1289
原生uuid==>97bc24f0-d12e-4184-b970-46a34dd53f06
----------------------UUID随机数 常用--------------------
97bc24f0d12e4184b97046a34dd53f06
----------------------UUID随机数 根据一个符合UUID格式的字符串获取--------------------
095c64fe-c5bf-11ea-aec6-a402b9e2b04d
----------------------UUID随机数 根据字符串获取--------------------
84e0cb5d-57ed-395b-8cc0-4b4ab9a7997b
84e0cb5d-57ed-395b-8cc0-4b4ab9a7997b
通过demo得出相同字符得除的加密是相同的
4b5b1bc6-86d1-390e-af96-0acd922f308f
----------------------生成随机ID--------------------
112926
52122
9081
109
43
1
----------------------生成时间UUID随机数--------------------
当前时间年月日20230202
2023020200914093716
202302020000914093716
不足之处多多谅解;有其他更好的方式,欢迎留言;