Java中生成的UUID(全局唯一标识符-----(唯一)-------)

Posted YX_blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中生成的UUID(全局唯一标识符-----(唯一)-------)相关的知识,希望对你有一定的参考价值。

GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID。

UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份。UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。目前最广泛应用的 UUID,即是微软的 Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的应用,则有 Linux ext2/ext3 档案系统、LUKS 加密分割区、GNOME、KDE、Mac OS X 等等。

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

以下是代码:

package cn.hncu.Telbook.utils;

import java.util.UUID;

public class GETuuid 
	//获得全球唯一性的id
		public static String getId()
			String id=UUID.randomUUID().toString();//生成的id942cd30b-16c8-449e-8dc5-028f38495bb5中间含有横杠,<span style="color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 20.7999992370605px;">用来生成数据库的主键id是很实用的。</span>
			id=id.replace("-", "");//替换掉中间的那个斜杠
			return id;
		


测试代码:

package cn.hncu.Telbook.Test;

import org.junit.Test;

import cn.hncu.Telbook.utils.GETuuid;

public class Test1 
	@Test
	public void Test()
		int n=3;
		while(n-->0)
		String id =GETuuid.getId();
		System.out.println(id);
		/*
		 * 942cd30b-16c8-449e-8dc5-028f38495bb5
			535c010d-63d1-486e-912e-af274dcebe42
			8827dcfa-e4a5-40e8-8b5f-cca60eae70e8

		 */
	


输出结果:

 <span style="white-space:pre">			</span>942cd30b-16c8-449e-8dc5-028f38495bb5
			535c010d-63d1-486e-912e-af274dcebe42
			8827dcfa-e4a5-40e8-8b5f-cca60eae70e8

以上是关于Java中生成的UUID(全局唯一标识符-----(唯一)-------)的主要内容,如果未能解决你的问题,请参考以下文章

利用Java.util.UUID来生成唯一ID(用来做数据库主键好用)

如何将UUID设置成系统唯一标识

UUID

Hive中生成随机唯一标识ID的方法

UUID.randomUUID().toString() 的作用

UUID.randomUUID().toString() 的作用