浅谈java中Math.random()与java.util.random()的区别_java

今天突然想起来,java产生随机数的问题,上机试了一下,找到了一点区别,在这里总结一下;

直接调用Math.random()是产生一个[0,1)之间的随机数,

如果用

java.util.Random random=new Random();random.nextInt()

这样产生一个长整型的随机数并且与上一次是一样的,如果过一会再产生就不会一样了,例如:

for (int i = 0; i < 10; i++) {
  Random random=new Random();
  Thread.sleep(100);
  System.out.print((int)random.nextInt(100)+" ");
 }

就是产生不同的随机Long数了

如果想用java.util.Random()产生指定范围的随机数就需要进行求模运算,进行一些处理。

同样 可以random.nextInt(100)产生100以内的随机数。一般最好用nextInt(范围)的,如果不是大量的运算的话,就可以用Math.random了,(因为他可以运算起来慢一些,浮点之后再取整)

以上这篇浅谈java中Math.random()与java.util.random()的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java中math.random
java math.random、java.util.random、java中math.random、java中的math.random、java的math.random,以便于您获取更多的相关知识。

时间: 2024-10-23 22:51:27

浅谈java中Math.random()与java.util.random()的区别_java的相关文章

浅谈JS中的!=、== 、!==、===的用法和区别_javascript技巧

var num = 1; var str = '1'; var test = 1; test == num //true 相同类型 相同值 test === num //true 相同类型 相同值 test !== num //false test与num类型相同,其值也相同, 非运算肯定是false num == str //true 把str转换为数字,检查其是否相等. num != str //false == 的 非运算 num === str //false 类型不同,直接返回fals

浅谈Java中的克隆close()和赋值引用的区别_java

学生类Student: package 克隆clone; /*要克隆必须实现这个借口:Cloneable,以标记这个对象可以克隆 Cloneable:此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制. 这个接口是标记接口,告诉我们实现该接口的类就可以实现对象的复制了. */ public class Student implements Cloneable { private String name; private int ag

浅谈.net中的静态类和java中的内部静态类

昨日看<Effective Java>第二条:遇到多个构造器参数时要考虑用构造器.其中,演示通过Builder模式,构建复杂的对象.因为之前对java不是很了解的原因.很疑惑:static class居然可以构建实例?之前,在.net中的静态类一直都是不能实例化的. 查了下资料,果然在java中只有内部静态类才能被实例化,通常称之为嵌套类.而顶级类,也就是没有被嵌套在另一个类的内部的类,不能被标记为static.这个和.net中有所不同,其实,我个人觉得两种语言都有各自的关注点. 从功能上来说

浅谈javascript中for in 和 for each in的区别

  区别一: for in是javascript 1.0 中发布的. for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分. 这将意味着存在各种浏览器的兼容性问题.for each in,对很多浏览器都不支持的.例如是不支持IE6,IE7,IE8等浏览器的. 区别二: 例: var 长方形= { 高:"15", 宽:"25" }; for (var i in 长方形){ alert( i +

浅谈C#中new、override、virtual关键字的区别

OO思想现在已经在软件开发项目中广泛应用,其中最重要的一个特性就是继承,最近偶简单的学习了下在设计模式中涉及到继承这个特性时,所需要用到的关键字,其中有一些关键点,特地整理出来.     一.New     在C#中,new这个关键字使用频率非常高,主要有3个功能:         a)   作为运算符用来创建一个对象和调用构造函数.     b)   作为修饰符.     c)   用于在泛型声明中约束可能用作类型参数的参数的类型.     在本文中,只具体介绍new作为修饰符的作用,在用作修

浅谈javascript中for in 和 for each in的区别_javascript技巧

区别一:         for in是javascript 1.0 中发布的.         for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分.         这将意味着存在各种浏览器的兼容性问题.for each in,对很多浏览器都不支持的.例如是不支持IE6,IE7,IE8等浏览器的. 区别二:     例:  var 长方形= {  高:"15",  宽:"25"  }; f

浅谈 Ruby 中的 block, proc, lambda, method object 的区别

当大家在百度中搜索"block proc lambda"的时候,会出来很多关于这几个概念之间区别的介绍,既然搜索结果中已经有了这些介绍,那为什么还要写这篇文章? 相信看过百度搜索结果中排名靠前的几篇文章的同学,都会发现其实这些文章并没有很好的说明他们之间区别是什么,大多只是介绍各自的用法,加上些许的区别,即使个别介绍了一些区别,也不够系统,不够深入. 正是基于上述原因,才酝酿了本文.本文以简单示例的方式,详细的介绍了它们之间的区别.相信您阅读完本文,一定会豁然开朗,并在今后的开发中准确

浅谈JavaScript中定义变量时有无var声明的区别_javascript技巧

前段时间回答了一个关于定义变量时使用关键字var与否的区别,总结回顾一下. 1.在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量. 使用var定义: var a = 'hello World'; function bb(){ var a = 'hello Bill'; console.log(a); } bb() //'hello Bill' console.log(a); //'hello world' 不使用var定义: var a = 'hello World'

浅谈静态变量、成员变量、局部变量三者的区别_java

静态变量和成员变量的区别: A:所属不同  静态变量:属于类,类变量    成员变量:属于对象,对象变量,实例变量 B:内存位置不同  静态变量:方法区的静态区    成员变量:堆内存 C:生命周期不同  静态变量:静态变量是随着类的加载而加载,随着类的消失而消失    成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失 D:调用不同  静态变量:可以通过对象名调用,也可以通过类名调用    成员变量:只能通过对象名调用 成员变量和局部变量的区别: A:在类中的位置不同  成员变量: