zoukankan      html  css  js  c++  java
  • 从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/

  • 相关阅读:
    poj 3068 Bridge Across Islands
    XidianOJ 1086 Flappy v8
    XidianOJ 1036 分配宝藏
    XidianOJ 1090 爬树的V8
    XidianOJ 1088 AK后的V8
    XidianOJ 1062 Black King Bar
    XidianOJ 1091 看Dota视频的V8
    XidianOJ 1098 突击数论前的xry111
    XidianOJ 1019 自然数的秘密
    XidianOJ 1109 Too Naive
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/4387007.html
Copyright © 2011-2022 走看看