java中的UUID

UUID是什么?

UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:

  • 当前日期和时间:UUID的第一个部分,与时间有关。如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
  • 时钟序列。
  • 全局唯一的IEEE机器识别号:如果有网卡,从网卡获得,没有网卡以其他方式获得,

UUID的唯一缺陷在于生成的结果串会比较长。

UUID经由一定的算法机器生成,具有相对唯一性,之所以这样说是因为UUID重复的可能性极小,基本不考虑重复的可能性。

UUID是不能人工指定的,除非你冒着UUID重复的风险。UUID的复杂性决定了“一般人“不能直接从一个UUID知道哪个对象和它关联。

UUID现在有很多版本,我们现在在实际的项目开发当中经常sh使用的是第四版本。

UUID Version 4:随机UUID

根据随机数,或者伪随机数生成UUID。这种UUID产生重复的概率是可以计算出来的,但随机的东西就像是买彩票:你指望它发财是不可能的,但狗屎运通常会在不经意中到来。

具体的使用方法如下

import java.util.UUID;

public class Test {

	public static void main(String[] args) {
		UUID uuid = UUID.randomUUID();
		System.out.println(uuid);
	}

}

运行结果:07022d5e-c0a5-4fb5-8995-52ea91824684

还可以使用它生成一个号称全球唯一的ID

import java.util.UUID;

public class Test {

	public static void main(String[] args) {
		UUID uuid = UUID.randomUUID();
		String GUID =uuid.toString().trim().replace("-", "");
		System.out.println("GUID :"+GUID);
	}

}

运行结果:GUID :ce6f021bb2414296a18aa4e4b96df6d1

这个GUID可以用来拼接作为路径,或者图片的前缀名,以避免命名冲突。或实现为数据库获取一个唯一的主键id,这个非常有用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值