在Java中创建随机数的不同方法

在 Java 中,我们可以使用以下类创建随机数:、、.让我们看看它们中的每一个的快速示例,然后我们将讨论它们的差异。RandomSecureRandomThreadLocalRandomSplittableRandom

十载的三穗网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整三穗建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“三穗网站设计”,“三穗网站推广”以来,每个客户项目都认真落实执行。

拆分表随机

package com.logicbig.example;

import java.util.SplittableRandom;

public class SplittableRandomExample {
public static void main(String[] args){
//creating a random int
System.out.println("-- single random int --");
int i = new SplittableRandom().nextInt(10, 100);
System.out.println(i);
//creating stream of ints
System.out.println("-- stream --");
new SplittableRandom()
.ints(5, 10, 100)
.forEach(System.out::println);
}
}
-- single random int --
49
-- stream --
73
35
50
44
88

安全随机

package com.logicbig.example;

import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.concurrent.ThreadLocalRandom;

public class SecureRandomExample {
public static void main(String[] args) throws NoSuchAlgorithmException {
//creating a random int
System.out.println("-- single random int --");
int i = new SecureRandom().nextInt(100);
System.out.println(i);
//creating stream of ints
System.out.println("-- stream --");
new SecureRandom()
.ints(5, 10, 100)
.forEach(System.out::println);
}
}
-- single random int --
13
-- stream --
80
73
92
30
92

线程本地随机

package com.logicbig.example;

import java.util.concurrent.ThreadLocalRandom;

public class ThreadLocalRandomExample {
public static void main(String[] args) {
//creating a random int
System.out.println("-- single random int --");
int i = ThreadLocalRandom.current().nextInt(10, 100);
System.out.println(i);
//creating stream of ints
System.out.println("-- stream --");
ThreadLocalRandom.current()
.ints(5, 10, 100)
.forEach(System.out::println);
}
}
-- single random int --
40
-- stream --
23
41
95
44
33

随机

package com.logicbig.example;

import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;

public class RandomExample {
public static void main(String[] args){
//creating a random int
System.out.println("-- single random int --");
int i = new Random().nextInt(100);
System.out.println(i);
//creating stream of ints
System.out.println("-- stream --");
new Random().ints(5, 10, 100)
.forEach(System.out::println);
}
}
-- single random int --
18
-- stream --
13
60
41
68
32

差异

  • java.util.Random它是线程安全的。但是,跨线程并发使用同一个 java.util.Random 实例可能会遇到争用和随之而来的性能不佳。
    自 Java 1.0 以来
  • java.security.SecureRandom此类提供加密强度高的随机数生成器。我们应该在安全敏感的应用程序中使用它。
    从 Java 1.1 开始
  • java.util.concurrent.ThreadLocalRandom隔离到当前线程的随机数生成器。使用内部生成的种子为当前线程初始化单个实例,单个线程可以通过方法一遍又一遍地访问该种子。与 相比,此生成器遇到的开销和争用要少得多。
    从 Java 1.7 开始ThreadLocalRandom.current()java.util.Random
  • java.util.SplittableRandom它是高性能的随机数生成器。SplittableRandom 的单个实例不是线程安全的。它们被设计为跨线程拆分,而不是共享。例如,使用随机数的fork/join样式计算可能包括新Subtask(aSplittableRandom.split()).fork()形式的构造。
    它们适用于 Java 8 流的并行计算。每次加入拆分任务时,它们始终会产生相同的结果,因此它们是确定性的,ThreadLocalRandom 没有该特征。从 Java 1.8 开始

上述每个类都有各种方法(或多或少)来生成单独的整数、浮点数、双精度、长整型、布尔值、 上面的每个类都有各种方法来生成 IntStream、DoubleStream 和 LongStream。

分享名称:在Java中创建随机数的不同方法
转载来源:http://www.shufengxianlan.com/qtweb/news0/400450.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联