随机数、唯一字符串

java.util.Random类

在Java中我们可以使用java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和Random(long seed):

Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、

nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。

如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那它们返回值完全相同。如下面代码中两个Random对象的输出完全相同,并且不管执行多少次,结果都不变,所以这是一个伪随机

    publicstaticvoid main(String[]args){

         Random random1 = new Random(100);

         System.out.println(random1.nextInt());

         System.out.println(random1.nextFloat());

         System.out.println(random1.nextBoolean());

         Random random2 = new Random(100);

         System.out.println(random2.nextInt());

         System.out.println(random2.nextFloat());

         System.out.println(random2.nextBoolean());

    }

输出:
-1193959466
0.7346627
false
-1193959466
0.7346627
false

Math.random()
产生[0.0,1.0)范围的double型随机数,不是伪随机。

生成指定范围随机数:
生成0到(n-1)的随机数整数:

         Random random = new Random();

         System.out.println(random.nextInt(10));

或:

         Random random = new Random();

         System.out.println(Math.abs(random.nextInt())%10);

上面代码生成0-9随机数
当然也可以用Math.random()来生成指定范围随机数,结合+、*、/便可。

生成唯一字符串:
        UUID.randomUUID().toString();
GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随机数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。
















版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/u/1987489/blog/491329

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值