UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。
在Java中生成UUID主要有以下几种方式:
JDK1.5
如果使用的JDK1.5的话,那么生成UUID变成了一件简单的事,以为JDK实现了UUID:
java.util.UUID,直接调用即可.
UUID uuid = UUID.randomUUID();
String s = UUID.randomUUID().toString();//用来生成数据库的主键id非常不错
UUID是由一个十六位的数字组成,表现出来的形式例如
550E8400-E29B-11D4-A716-446655440000
//下面就是实现为数据库获取一个唯一的主键id的代码
public class UUIDGenerator {
public UUIDGenerator() {
}
/**
* 获得一个UUID
* @return String UUID
*/
public static String getUUID(){
String s = UUID.randomUUID().toString();
//去掉“-”符号
return s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24);
}
/**
* 获得指定数目的UUID
* @param number int 需要获得的UUID数量
* @return String[] UUID数组
*/
public static String[] getUUID(int number){
if(number < 1){
return null;
}
String[] ss = new String[number];
for(int i=0;i<number;i++){
ss[i] = getUUID();
}
return ss;
}
public static void main(String[] args){
String[] ss = getUUID(10);
for(int i=0;i<ss.length;i++){
System.out.println(ss[i]);
}
}
}
分享到:
相关推荐
Java Uuid生成器(JUG) JUG是一组用于处理UUID的Java类:使用任何标准方法生成UUID,有效输出,排序等。 它根据生成UUID(有关更多说明,另请参见) JUG由Tatu Saloranta( )最初于2002年编写,并且经过多年的...
NULL 博文链接:https://jarorwar.iteye.com/blog/553875
主要介绍了java实现随机生成UUID的函数代码,有需要的小伙伴可以参考下。
在基准测试中,解析UUID的速度比编写JU实现快14倍,编写UUID的速度快6倍。 与Java 9和更高版本相比,它在解析UUID时快大约六倍,并且在编写UUID方面没有任何好处。 该库适用于使用大量UUID或以性能敏感代码使用...
在大数据量的时候,会涉及分库分表,使用自增ID可能会导致ID重复,使用UUID是无序的,在创建主键索引的时候会频繁的修改索引树内的索引位置,让索引更新的效率很低等问题。索引此时就引入了雪花ID,它既能保证ID的...
twitter雪花算法的java实现,分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。 有些时候我们希望能使用...
java源码clj-uuid “UUID 的目的是使分布式系统能够在没有重要中央协调的情况下唯一地识别信息。” —— clj-uuid是一个 Clojure 库,用于生成和利用 UUID(通用唯一标识符),如 所述。 该库扩展了标准 Java UUID ...
目前只实现了java生成的固定的uuid:85bb94b8-fd4b-4e1c-8f49-3cedd49d8f28的序列化 package main import ( encoding/binary encoding/json fmt log os strings time github.com/Shopify/sarama github....
主要介绍了Java实现产生随机字符串主键的UUID工具类,涉及java随机数与字符串遍历、转换等相关操作技巧,需要的朋友可以参考下
它主要用于以紧凑且在URL中运行良好的方式对UUID进行编码。 与base-64相比,它不需要任何非字母数字字符。 基本-62系统的62位由10个字符为十进制数字(表示0 ... 9 ),26个大写字母字符( A ... Z ),和26小写...
Java也可以实现二维码的解码和编码,现用Java实现二维码中QRCode的编码和解码
例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码...
在 nodejs 上生成 UUID$ git clone https://github.com/lintide/UUIDBase64url.git$ cd UUIDBase64url$ npm install$ node index.js使用 UUID 库不过这个库只提供 UUID V1 和 UUID V4的实现,示例如下:> var uuid =...
import java.util.UUID; import javax.servlet.ServletContext; import net.sf.jxls.transformer.XLSTransformer; import org.apache.struts2.ServletActionContext; import ...
主要给大家介绍了关于spring boot整合mybatis利用Mysql实现主键UUID的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
模拟实现超市自助购物,店家商家货物,会员充值、会员消费等等。 资料包里: 包含所有源码、部署视频、说明文档。 基于RFID的自动识别技术,通过无线射频方式实时获得磁卡对超市物品的电子标签进行读取,然后将数据...
51.5. java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 25 52. 数据连接池 25 52.1. 连接池的基本原理: 25 52.2. 连接池的工作机制 25 52.3. 建立连接池 26 ...
主要介绍了java实现无符号数转换、字符串补齐、md5、uuid、随机数示例,需要的朋友可以参考下
Twitter的雪花算法SnowFlake,使用Java代码实现。 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些...
Java Web是一种使用Java技术来开发Web应用程序的技术框架。验证码生成逻辑 1、前端调用API接口,向后端发起一个[获取验证码]请求。 2、后端得到请求,创建验证码ID(通常利用UUID直接创建),然后以各种方式生成一...