Java随机数算法(一)(r11笔记第14天)
公众号:杨建荣的学习笔记 · 作者:杨建荣 · 发布:2016-12-16 23:36:02 · 原文链接
问:如何生成一个随机的字符串?答:让新手退出VIM 。
这可能也是随机字符的一种由来:)
我们今天要说的是随机数算法,这个我策划了好久,但是进展缓慢。
生成一个随机数看起来很简单,一直以来却深知它的不易,怎么让一个确定的值得到一个不确定的值,这个想起来都有点困难,而且这部分内容,自己也花了些时间去看Java源码,结果发现远比自己琢磨的要复杂的多,加上也有些日子没写过Java代码,可谓是困难重重,写了一小部分的总结发现,竟然有很多不大理解的地方。带着问题竟然找到一篇文章说得非常全面,索性就拿过来了。文章的链接如下,感兴趣可以看看,我在这个基础上做了删减。http://blog.sina.com.cn/blog_4f925fc30100uvur.html
看内容里面的随机算法在不同Java版本还是有一些差距,比如Random的方法在JDK6中会使用System.nanoTime()的方式,而在早期的版本是使用currentTimeMillis,相比而言,nanoTime是以毫微秒为单位,而currentTimeMillis返回的是系统当前时间和1970-01-01之前间隔时间的毫秒数。
而且在随机算法的实现细节上,也有一些差别。以下是旧版本的解读,而新版本的解读我还要继续花一些时间。在我偶然看到一本随机算法的书时,简直是惊呆了,看来是我太单纯了。这本书有400多页,涉及的面非常广。

