`
小网客
  • 浏览: 1241208 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

UUID在Java中的两种产生方式

    博客分类:
  • Java
 
阅读更多

需求:

集群环境下需要产生uuid,uuid的作用不言而喻

转发请注明出处:http://snv.iteye.com/

环境:

<dependency>
	<groupId>org.safehaus.jug</groupId>
	<artifactId>jug</artifactId>
	<version>2.0.0</version>
	 <classifier>asl</classifier>
</dependency>  

或:

<dependency>
	<groupId>org.safehaus.jug</groupId>
	<artifactId>jug</artifactId>
	<version>2.0.0</version>
	<classifier>lgpl</classifier>
</dependency>

两个的区分只是license不一样

基于JUG实现:

UUIDGenerator generator=UUIDGenerator.getInstance();
UUID uuid=generator.generateRandomBasedUUID();
System.out.println(uuid.toString());
uuid=generator.generateTimeBasedUUID();
System.out.println(uuid.toString());

基于JDK的实现:

String uuidStr=java.util.UUID.randomUUID().toString();
System.out.println(uuidStr);

PS:

两种方式我单机测试jdk的性能高不知道各位看官有什么看法,测试如下:

public static void cost() throws Exception {
	UUIDGenerator generator=UUIDGenerator.getInstance();
	final int size=10000000;
	long now=System.currentTimeMillis();
	for (int i = 0; i < size; i++) {
		UUID uuid=generator.generateRandomBasedUUID();
		String uidStr=(uuid.toString());
	}
	long time1=System.currentTimeMillis();
	for (int i = 0; i < size; i++) {
		String uidStr=java.util.UUID.randomUUID().toString();
	}
	long end=System.currentTimeMillis();
	System.out.println("jug cost:"+(time1-now));
	System.out.println("jdk cost:"+(end-time1));
}

结果:

jug cost:11209
jdk cost:10114

 

0
0
分享到:
评论

相关推荐

    fast-uuid用于快速高效地解析和编写UUID的Java库

    在Java中,虽然标准库提供有`java.util.UUID`类来生成和处理UUID,但其性能并非最优,特别是在大规模生成和解析时。为了提高效率,开发者有时会寻求更高效的解决方案,比如`fast-uuid`。 `fast-uuid`是一个专门为...

    java UUID16的生成下载

    总之,UUID16是关于Java中生成全局唯一标识符的一种方式,它涉及到UUID的版本1生成机制,包含时间戳、节点ID和序列号,以确保在分布式环境中生成的标识符的唯一性。通过理解和使用UUID,我们可以有效地在各种场景下...

    Java 中将 UUID 存储为 Base64 字符串

    在实际应用中,这种转换方式尤其适用于需要频繁传输 UUID 或者存储空间有限的场景。需要注意的是,虽然 Base64 编码有助于压缩 UUID 的存储空间,但其编码后的字符串长度仍比原始 UUID 字符串稍长,因此需要根据具体...

    java实现随机生成UUID

    在Java中,UUID是由java.util.UUID类提供的,可以生成两种类型的UUID:时间戳基的UUID和名称基的UUID。 时间戳基的UUID是基于当前时间创建的,通过记录当前时间(精确到纳秒)和一个随机或伪随机数生成。这种类型的...

    通过NDK获得UUID

    在Android开发中,有时...在项目`UIDDemo`中,很可能包含了实现上述两种方法的示例代码,可以作为学习和参考的资源。通过查看和分析这些代码,你可以更好地理解如何在Android中通过NDK和Java层获取UUID或设备唯一标识。

    java生成UUID通用唯一识别码.docx

    UUID,全称Universally Unique Identifier,是用于生成全局唯一标识符的一种标准。...在Java和JavaScript编程中,根据具体需求选择合适的方式生成UUID,可以保证在各种场景下的唯一性和不可预测性。

    UUID使用总结

    例如,在Java中,可以使用`java.util.UUID`类来生成和操作UUID;在Python中,可以导入`uuid`模块来实现相同功能。在实际应用中,UUID常用于数据库主键、临时文件命名、分布式系统中的唯一标识等场景,避免了命名冲突...

    JSOUP 一张表存储省市区街道四级地址信息,主键用UUID存储, 还有一种是用四张表分别存取 省 市 区 街道四级 可以作为参

    下面将详细讨论这两种设计方式以及涉及到的相关技术。 首先,"JSOUP"通常指的是Java的HTML解析库,它允许开发者方便地从网页抓取结构化数据。在这个场景中,虽然主要讨论的是数据库设计,但JSOUP可能用于从网页上...

    用hibernate形式uuid的生成算法

    在Java开发领域,特别是使用Hibernate框架进行数据库操作时,唯一标识符(UUID)的生成是常见的需求之一。UUID(Universally Unique Identifier),即通用唯一识别码,是一种用于创建唯一标识符的机制,常用于分布式...

    java 获取分布式唯一ID.雪花ID

    在描述中提到的`IdUtils`可能是一个自定义的工具类,提供了两种生成唯一ID的方法: 1. `IdUtils.simpleUUID()`:这通常会返回一个基于`java.util.UUID`生成的16进制字符串形式的UUID,长度为32个字符,用于生成字符...

    Java调用wcf服务

    Java和.NET是两种广泛使用的开发平台,它们各自拥有大量的用户和开发者。然而,当Java应用程序需要与基于.NET框架的Windows Communication Foundation(WCF)服务进行交互时,就需要一种机制来实现这种跨平台的数据...

    python生成大写32位uuid代码

    补充拓展部分提到了两种生成32位随机数的方法,虽然它们不是Python的实现,而是Java语言的代码,但这里可以解释一下: 1. Java中的`uuid.UUID.randomUUID().toString()`生成的是一个标准的UUID字符串,包含32位数字...

    用java实现HS和LCR选举算法

    在Java中实现这两种算法,我们需要关注以下几个关键点: 1. **消息通信**:可以使用Java的Socket编程实现节点间的网络通信,或者利用RMI(远程方法调用)或Apache ZooKeeper等框架来简化通信过程。 2. **ID管理**...

    java自动生成id策略

    "java自动生成id策略"指的是设计并实现一种机制,确保在多线程环境下能够高效、唯一地生成ID。这里我们将详细探讨这个主题,以及如何根据描述实现这样的策略。 首先,ID的生成通常要求满足以下条件: 1. 唯一性:...

    mongojack-uuid-example:mongo-java-driver vs mongojack 的 UUID 行为

    这两个驱动在处理 UUID(通用唯一标识符)时可能存在一些差异,这在项目 `mongojack-uuid-example` 中得到了体现。本篇文章将深入探讨 `mongo-java-driver` 和 `mongojack` 在处理 UUID 类型数据时的不同行为,并...

    java解决请求跨域的两种方法

    Java 解决请求跨域的两种方法是指在 Java Web 开发中解决跨域资源共享(Cross-Origin Resource Sharing,CORS)问题的两种常见方法。跨域资源共享是指一个域名下的资源被另一个域名下的资源请求时产生的安全机制,...

    Java蓝牙无线技术

    Java Bluetooth API支持两种数据传输模式:基于流的连接和基于数据报的连接。前者使用`StreamConnection`,适用于大量、连续的数据传输,如音频流;后者使用`DatagramConnection`,适合小量、突发的数据交换,如...

    Java根据实体创建Mysql数据库表

    - Hibernate使用两种方式实现对象-关系映射:XML文件和注解。通常,注解更简洁,更易于维护。实体类上的注解如`@Column`、`@OneToMany`、`@ManyToOne`等,定义了对象间的映射关系。 4. **使用Hibernate工具自动...

    JPA(Java Persistence API) JPA中文教程

    6. **查询(Querying)**:JPA提供两种查询方式:JPQL(Java Persistence Query Language)和 Criteria API。JPQL是一种面向对象的查询语言,类似于SQL,而Criteria API则允许动态构建查询,更加面向API。 **JPA的...

Global site tag (gtag.js) - Google Analytics