JAVA UUID 生成唯一标识】的更多相关文章

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want 需求 项目在设计表的时候,要处理并发多的一些数据,类似订单号不能重复,要保持唯一.原本以为来个时间戳,精确到毫秒应该不错了.后来觉得是错了,测试环境下很多一样的ID,不能达到唯一标识. UUID JDK API 是这么说的:“表示通用唯一标识符 (UUID) 的类. UUID 表示一个 128 位的值.” 详细的说就是:“UUID含义是通用唯一识…
/**     * 获得指定数目的UUID      * @param number int 需要获得的UUID数量      * @return String[] UUID数组      */    public static String[] getUUID(int number){        if(number < 1){            return null;        }        String[] retArray = new String[number];   …
UUID是什么: UUID: 通用唯一标识符 ( Universally Unique Identifier ),对于所有的UUID它可以保证在空间和时间上的唯一性,也称为GUID,全称为: UUID —— Universally Unique IDentifier  Python中称为 UUID GUID —— Globally Unique IDentifier     C#中称为 GUID 它是通过MAC地址. 时间戳. 命名空间. 随机数. 伪随机数来保证生成ID的唯一性,,有着固定的大…
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成UUID的API.UUID按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结…
GUID是一个128位长的数字,一般用16进制表示.算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成GUID.从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复. UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID package com.mytest; import java.util.UUID; public class UTest {    public static void main(S…
来自:http://www.cnblogs.com/jdonson/archive/2009/07/22/1528466.html 基本原理:GUID是一个128位长的数字,一般用16进制表示.算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成GUID.从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复. UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID. package com.mytest;…
有时候业务需要生成唯一标识符,但又不能依赖于数据库中自动递增的字段产生唯一ID,比如多表同一字段需要统一一个唯一ID,此时我们就需要用程序来生成一个唯一的全局ID. UUID UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的. UUID是一个128bit的数字,也可以表现为32个16进制的字符(每个字符0-F的字符代表4bit),中间用"-"分割. 时间戳+UUID版本号: 分三段占16个字符(60bit+4bit), Clock Sequence号与保留字…
有时候业务需要生成唯一标识符,但又不能依赖于数据库中自动递增的字段产生唯一ID,比如多表同一字段需要统一一个唯一ID,此时我们就需要用程序来生成一个唯一的全局ID. UUID UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的. UUID是一个128bit的数字,也可以表现为32个16进制的字符(每个字符0-F的字符代表4bit),中间用"-"分割. 时间戳+UUID版本号: 分三段占16个字符(60bit+4bit), Clock Sequence号与保留字…
1.在多线程编程中,有时候需要自动为每个启动的线程生成一个唯一标识,这个时候,通过一个ThreadLocal变量来保存每个线程的标识是最有效.最方便的方式了. 2.ThreadLocal 实例通常是类中的私有静态字段 3.在构建ThreadLocal的时候,通过覆盖子类的方法来改写序号.从而达到为每个线程生成序号的目的. import java.util.Collections; import java.util.HashMap; import java.util.Map; /** * 一个多线…
Mysql可以使用字符串前缀 作为索引 以节约空间. 下面我们以 Java的UUID 生成的 32位(移除UUID中的 中划线)字符串 来做一下 测试. 表结构: CREATE TABLE `test_uuid` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uuid` varchar(36) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT DEFAULT CHA…