Java随机数类 Random 源码解析

导读:本篇文章讲解 Java随机数类 Random 源码解析,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

new Random之后 发生了什么

空参构造器

Random(long seed)

nextInt() 调用时发生了什么


new Random之后 发生了什么

基本的常量

Java随机数类 Random 源码解析

 

空参构造器

Java随机数类 Random 源码解析

Java随机数类 Random 源码解析

Random(long seed)

Random(long seed)等效于

Random rnd = new Random();

rnd.setSeed(seed);

Java随机数类 Random 源码解析

Java随机数类 Random 源码解析

所以使用该构造器在实例化的时候 时间开销更小,因为没有调用系统的时间函数。

nextInt() 调用时发生了什么

Java随机数类 Random 源码解析

Java随机数类 Random 源码解析

下一个种子的计算公式:

(seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) – 1)

返回 (int)(seed >>> (48 – bits)).

这是一个线性同余伪随机数生成器,由D.H.Lehmer和Donald E.Knuth在《计算机编程艺术》提出。

随机数的生成算法有平方取中法,线性同余法,梅森旋转法等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/92781.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!