mirror of
https://github.com/sjsdfg/effective-java-3rd-chinese.git
synced 2025-01-27 12:50:07 +08:00
update 59. 了解并使用库
This commit is contained in:
parent
8fcd094991
commit
965dea4602
@ -2,7 +2,7 @@
|
||||
|
||||
假设你想要生成 0 到某个上界之间的随机整数。面对这个常见任务,许多程序员会编写一个类似这样的小方法:
|
||||
|
||||
```
|
||||
```java
|
||||
// Common but deeply flawed!
|
||||
static Random rnd = new Random();
|
||||
static int random(int n) {
|
||||
@ -12,7 +12,7 @@ static int random(int n) {
|
||||
|
||||
这个方法看起来不错,但它有三个缺点。首先,如果 n 是小的平方数,随机数序列会在相当短的时间内重复。第二个缺陷是,如果 n 不是 2 的幂,那么平均而言,一些数字将比其他数字更频繁地返回。如果 n 很大,这种效果会很明显。下面的程序有力地证明了这一点,它在一个精心选择的范围内生成 100 万个随机数,然后打印出有多少个数字落在范围的下半部分:
|
||||
|
||||
```
|
||||
```java
|
||||
public static void main(String[] args) {
|
||||
int n = 2 * (Integer.MAX_VALUE / 3);
|
||||
int low = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user