java中两种随机数的产生方式

来源:互联网 发布:sql注入的防护 编辑:程序博客网 时间:2024/06/05 03:02
UUID
UUID.randomUUID().toString()   //用来产生一个随机数,重复可能性很小所以用来生成数据库的主键id非常不错。
生成的字符串长度为36,

UUID由以下几部分的组合:

  (1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。

  (2)时钟序列

  (3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx (8-4-4-4-12)

File.separator  路径分隔符:
在Windows下的路径分隔符和Linux下的路径分隔符是不一样的,当直接使用绝对路径时,跨平台会暴出“No such file or diretory”的异常。

Random
Random在java里面有两个包里面都有这个函数,这两个包分别是:
一、java.lang.Math.Random;
Returns:
a pseudorandom double greater than or equal to 0.0 and less than 1.0.
See Also:
Random.nextDouble()

二、java.util.Random;
1、java.util.Random 中的随机算法是伪随机,也就是有规则的随机
2、相同种子数的Random对象,相同次数生成的随机数字是完全相同的;
3、Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率均等;

Random 有两种构造器, 
Random(long seed)   以seed为种子生成随机数
Random()   
注意:种子数只是随机算法的起源数字,不是生成的随机数的区间,并且没有任何关系
Random random1 = new Random(100);
Random random2 = new Random(100);
Random random3 = new Random();
这两种声明方式的区别
num1=random1.nextInt(100);
num2=random2.nextInt(100);
其中num1 是等于num2的
num3=random3.nextInt(100);
num3则不一定会和num1 或num2 相等!
0 0
原创粉丝点击