【笔记59】了解和使用类库

假设希望产生位于0到某个上界之间的随机整数。

private static final Random rnd = new Random();
static int random(int n){
    return Math.abs(rnd.nextInt()) % n;
}

这样写有三个缺点:

1、如果n是一个比较小的2的乘方,经过一段相当短的周期之后,随机数将会重复。

2、如果n不是2的乘方,那么平均起来,有些数会比其他的数出现的更为频繁。如果n比较大,缺点会更明显,由random方法产生的数字有2/3在取值范围的前半部分。

3、极少数情况下,它的失败时灾难性的,返回一个落在指定范围之外的数。

为了修正这三个缺点的random方法,需要了解关于随机数生成器、数论和2的求补算法的相关知识。现有的类库提供随机数生成的方法,不需要自己来做这样的工作,Random.nextInt(int)就实现产生0到某个上界的随机数功能。标准的类库经过测试,而且一旦发现缺陷,会在下个版本修正,程序员如果不持续关注,可能连方法实现细节被修改过也不会发现。

使用标准类库的好处:

使用标准类库的第一个好处是,可以充分利用这些 编写标准类库的专家的知识,以及在你之前的其他人的使用经验。

使用标准类库的第二个好处是,不必浪费时间为那些与工作不太相关的问题提供特别的解决方案。就像大多数程序员一样,应该把时间花在应用程序上,而不是底层的细节上。

使用标准类库的第三个好处是,它们的性能往往会随着时间的推移而不断提髙,无需你做任何努力。因为许多人在使用它们,被当作工业标准在使用,所以,提供这些标准类库的组 织有强烈的动机要使它们运行得更快。这些年来,许多Java平台类库已经被重新编写了,有时候是重复编写,从而导致性能上有了显著的提髙。

标准类库也会随着时间的推移而增加新的功能。如果类库中漏掉了某些功能,开发者社区(developer community)就会把这些缺点告示出来,漏掉的功能就会添加到后续的发行版本中。Java平台类库始终是在这个社区的推动下不断发展的。

使用标准类库的最后一个好处是,可以使自己的代码融入主流。这样的代码更易读、更易维护、更易被大多数的开发人员重用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值