您的位置:首页 > 编程语言 > Java开发

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

2016-04-07 14:54 537 查看
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 相等!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: