Math.random()和Random类之间的联系

**Math.random()**是令系统随机产生大于等于0.0,小于1.0的伪随机double值。假设:产生一个1到4的变量,num = Math.random()*3+1;

Random 类就是含有有参数和无参数两种的构造,其中不含参数的构造方法是每次将当前的系统时间作为种子,而含参数构造是使用一个固定值(参数)作为种子,种子也就是Random生成随机数时所使用的参数。每次使用时先创建一个Random对象,也叫随机数生成器,然后调用Random.next**()方法获取数值。

Random类的注意事项:

  1. 随机数是种子经过计算生成的。
  2. Random类中不含参数的构造函数每次都是使用的当前时间作为种子,随机性更强;而含参数的构造函数是伪随机的,更有可预见性。
  3. 具有相同种子值得Random对象生成的随机数相同;种子值不同,产生的随机数不再一致。

Math类的源码显示出Math.random()内部调用的方法就是Random类中的nextDouble()方法,此刻也就明确了文章一开始Math.random()返回的是double类型值。

new Random().nextInt(5); 就是要返回的随机数的边界,也就是随机数的范围是0——5之间的整数

Random类
package dome04;
/*使用:
* 获取一个随机的int数字(范围是int的所有范围,有正负两种)
* 获取一个随机的int数字(参数代表了范围,左闭右开区间)
* int nun = r.nextInt(3);
* 实际含义就是0-2*/
import java.util.Random;
import java.util.function.DoubleToIntFunction;

public class Dome04Random {
    public static void main(String[] args) {
       int n =5;
       Random r = new Random();
        //本来的范围是【0,n),整体+1之后就是【1,n】
        int result = r.nextInt(n) + 1;
        System.out.println(result);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值