开发工具与关键技术: MyEclipse 10、Java语法
作者:邓婵
撰写时间:2019年 08月14日
在开发中产生随机数的使用是很普遍的,在Java中主要提供了两种方式产生随机数,分别为调用Math类的random()方法和Random类提供的产生各种数据类型随机数的方法。
1、首先来看看在Math类的random()方法产生的随机数,这个方法默认生成是大于等于0.0且小于1.0的double型随机数,输出结果如图下所示:
2、通过Random类生成一个伪随机数,这个可以通过实例化一个Random对象创建一个随机数生成器,其产生的随机数是根据种子和顺序决定的。
其实我们有三种方法去创建随机数生成器:
方法一:通过实例化一个Random对象创建一个新的随机数生成器
说明:这种方法实例化对象时Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间不可能相同,所以产生的随机数将不同,但如果运行速度太快也会产生两次运行结果相同的随机数。
方法二:使用单个 long 种子创建一个新的随机数生成器
方法三:为了线程安全是无法实例的,但current是一个和线程相关的生成器,是获取当前状态下的一个随机类
在Random类中提供了获取各种数据类型随机数的方法,下面列举了一些常用的方法,如下图所示:
下面是在类的主方法中创建Random类对象,使用该对象生成一串随机的byte数组,相关代码以及输出结果可参考图下所示:
说明:首先实例化一个Random对象创建一个新的随机数生成器,然后生成一串随机的byte数组,接着你要传一个byte数组进去,然后它把byte数组自定义大小把随机数全部生成到数组当中去,最后循环遍历出再将数据打印出来。
Random类产生的数字并不是真正随机的,而是一种伪随机,因为只要两个Random对象的种子相同,而且方法的调用顺序也相同,产生的随机数相同,下面我们通过例子可以来验证一下。