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/

  • 相关阅读:
    Duilib 入门教程: 怎么创建一个自定义的窗口
    从屏幕右下角升起的弹窗
    最小化窗口至右下角
    MFC 使程序不在任务栏显示
    创建数据库
    sqlite入门基础(一):sqlite3_open,sqlite3_exec,slite3_close
    VC++、MFC中最好的开源项目
    在MFC中,利用GDI绘制橡皮筋效果-直线,圆,椭圆,矩形
    WCHAR char CString等常用类型互转
    CGAL 计算机几何算法库
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/4387007.html
Copyright © 2011-2022 走看看