从UUID想到的
1.UUID的定义
通用唯一标识符(UUID)被设计成一个在时间和空间上都独一无二的数字,常被用作唯一性标识。
UUID是一个由5位十六进制数的字符串表示的128比特数字,其格式为 aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee。 UUID的生成用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字,目的是保证UUID的唯一性。
2.Java对UUID的支持
JDK1.5之后增加了对UUID的支持:
UUID uuid = UUID.randomUUID();
String s = UUID.randomUUID().toString();
3.MySQL对UUID的支持
MySQL中也可以生成UUID,如下:
mysql> select uuid();
+--------------------------------------+ | uuid()
| +--------------------------------------+ |
05bde465-d901-11e4-b27d-e005c5f19f8f |
+--------------------------------------+ 1 row in set (0.14 sec)
4.UUID的用途
UUID可以被用作数据库集群中的主键,数据库集群中采用自增长方式来保证唯一性时,可能会出现2个相同的主键。使用UUID来代替自增长几乎是不会有重复的,可以完成类似Oracle中的sequence的功能,生成唯一键。
单数据库时,比如MySQL,由于有行级锁,自增长方式产生的主键肯定是唯一的,但是集群中就难以保证了。 数据库做了集群,上层就应有负责负载均衡的模块,和web访问需要负载均衡到各服务器一样。
5.serialVersionUID
serialVersionUID,这也是一个很长的数字串,但是它和UUID可以一点的关系都没有。 serialVersionUID主要用于反序列化中版本的比较,决定着反序列化是否能够成功。
关于serialVersionUID有一点是需要注意的,如果工作中频繁的拷贝代码,将serialVersionUID也进行了复制的话,就很有可能导致反序列化的失败。
关于serialVersionUID的其他知识,可以参见:
http://blog.csdn.net/dancen/article/details/7236575
http://www.strutshome.com/index.php/archives/641
http://www.cnblogs.com/guanghuiqq/archive/2012/07/18/2597036.html
http://www.ibm.com/developerworks/cn/java/j-5things1/
从UUID想到的的更多相关文章
- .net 使用PowerShell获取电脑中的UUID
UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OS ...
- ios7 uuid的获取方法
ios7后mac地址沦为鸡肋,所以必须得重新想办法获取设备的id信息,apple推荐用UUID,但app重新安装后,UUID需要重设,所以想到把UUID存储到ios系统的keychain中,既然存储在 ...
- UUID 浅析
在2013年3月21日苹果已经通知开发者,从2013年5月1日起,访问UIDID的应用将不再能通过审核,替代的方案是开发者应该使用“在iOS 6中介绍的Vendor或Advertising标示符”. ...
- MySql中利用insert into select 准备数据uuid主键冲突
MYSQL 中表1需要准备大量数据,内容主要取自表2,id必须为32位uuid (项目所有表都是这样,没办法), 准备这样插入: INSERT INTO TBL_ONE (ID, SOID, SNAM ...
- 利用Java生成UUID
UUID是什么? UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分.其目的,是 ...
- MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)
测试缘由 一个开发同事做了一个框架,里面主键是uuid,我跟他建议说mysql不要用uuid用自增主键,自增主键效率高,他说不一定高,我说innodb的索引特性导致了自增id做主键是效率最好的,为了拿 ...
- [转] web前端js构造无法销毁的类UUID识别码,识别浏览器设备唯一性
用户行为统计在如今的前端生态中已是稀松寻常,如各种站长统计工具.识别用户访问客户端唯一性是必要的实现,对于web前端获取的设备信息,一般容易想到的是通过navigator.userAgent,但相同设 ...
- 关于分布式uuid的一点设想
在一次公开课上,听别人讲过全局分布式uuid的设计,听过twitter的snowflake的设计.也听过,如果使用单独的计数器服务,不可能每次都保存当前计数器到文本,自己想到应该可以每隔一些数,例如1 ...
- 每天一个小程序—第0001题(uuid模块)
第 0001 题: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 一开始以为是 ...
随机推荐
- C++课程设计类作业3
#include <bits/stdc++.h> using namespace std; class A { public: A() { a=b=; cout<<" ...
- BZOJ1258: [CQOI2007]三角形tri
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1258 如果最后一位是4,那就改成123就好了. 然后最后一位不是4的话,至多三个答案,然后可以 ...
- 移动App,AJAX异步请求,实现简单的增、删、改、查
用ajax发异步请求时,要注意url."AppServer"为后台项目名,"LoginServlet.action"为web.xml中的<url-patt ...
- 三分钟使用webpack-dev-sever搭建一个服务器
webpack-dev-server是一个小型的Node.js Express服务器,我们可以通过它搭建一个本地服务器,并且实现文件热更新; 1.切换到你的目录下对项目进行初始化 npm init 一 ...
- 【Zigbee技术入门教程-01】Zigbee无线组网技术入门的学习路线
[Zigbee技术入门教程-01]Zigbee无线组网技术入门的学习路线 广东职业技术学院 欧浩源 一.引言 在物联网技术应用的知识体系中,Zigbee无线组网技术是非常重要的一环,也是大家感 ...
- 遍历数组中的元素(含es6方法)
假如有这样一个数组.arr = [12,34,45,46,36,58,36,59],现在要遍历该数组. 方法1:以前我们可能会这样做: for(var i=0;i<arr.length;i++) ...
- 【shell mysql 导出数据到csv脚本,完美解决乱码转义符等问题】-费元星
#!/bin/bash#@author:feiyuanxing [既然笨到家,就要努力到家]#@date:2017-12-05#@E-Mail:feiyuanxing@gmail.com#@TARGE ...
- HtmlHelper总结
HTML helper是在视图页面上操作HTML元素时可以调用的方法,还包括URL helper和AJAX helper.这些帮助方法都为了使得操作HTML更加容易.分为两类:a.编辑和输入帮助类b. ...
- 如何更改Linux的ssh端口
1. 修改/etc/ssh/sshd_config里的Port字段 Port 22改为Port 1000(你自定义的端口) 2. 重启sshd服务 #service sshd restart
- Web API (四) 特性路由(Attribute Route)
特性路由 是Web API 2 中提出的一种新的类型的路由,正如其名称那样,它是通过特性(Attribute) 来定义路由的,相比之前的基于模式(Convertion Based)的路由,特性路由 能 ...