- 浏览: 467692 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
random.netInt()如果括号里加上100,那就是生成0-100(不包括100)的随机数,那么,如果括号里不加参数,那么生成的是多少位数的随机数?是0-10吗?
AA:
从java的源代码里可以看到:
它调用了next(int)方法, 返回的是32位的随机序列值
==========================
Random函数在flash里是很有用的,能够生成基本的随机数,创建随机的移动,连同随机的颜色和其他更多的作用。在下面这个例子中当您每次按下按钮就会显示一个从-100到100的随机数,这个教程将解释如何做出这个例子连同如何利用Random函数产生其他不同的结果。
基本的Random函数如下
Math.random();
能够产生出0-1之间的任意小数
Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机数。
类Random中的方法十分简单,它只有两个构造方法和六个普通方法。
构造方法:
Java产生随机数需要有一个基值seed,在第一种方法中基值缺省,则将系统时间作为seed。
普通方法:
以下是Random类的各种例子测试:
执行结果:
Math.random(): 0.03900179772838652
使用不带参数的构造方法构造的Random对象:
int: -270073819
long: 7255466478054014832
float: 0.4808815
double: 0.6083990998389226
Gaussian: -0.9127617087700918
随机整数序列:-2019302565 -1633933993 -236750885 2020511907 619139053
[0,10)范围内随机整数序列: 3 6 7 1 9 8 4 0 4 8
[5,23)范围内随机整数序列: 8 14 27 14 23 23 23 15 24 11
利用nextFloat()生成[0,99)范围内的随机整数序列: 52 88 93 62 71 66 62 38 72 94
使用带参数的构造方法构造的Random对象:
使用种子为10的Random对象生成[0,10)内随机整数序列:
3 0 3 0 6 6 7 8 1 4
使用另一个种子为10的Random对象生成[0,10)内随机整数序列:
3 0 3 0 6 6 7 8 1 4
ran2和ran3生成的随机数序列是一样的,如果使用两个没带参数构造函数生成的Random对象, 则不会出现这种情况,这是因为在没带参数构造函数生成的Random对象的种子缺省是当前系统时间的毫秒数。另外,直接使用Random无法避免生成重复的数字,如果需要生成不重复的随机数序列,需要借助数组和集合类
AA:
从java的源代码里可以看到:
/* * @return the next pseudorandom, uniformly distributed {@code int} * value from this random number generator’s sequence */ public int nextInt() { return next(32); }
它调用了next(int)方法, 返回的是32位的随机序列值
==========================
Random函数在flash里是很有用的,能够生成基本的随机数,创建随机的移动,连同随机的颜色和其他更多的作用。在下面这个例子中当您每次按下按钮就会显示一个从-100到100的随机数,这个教程将解释如何做出这个例子连同如何利用Random函数产生其他不同的结果。
基本的Random函数如下
Math.random();
能够产生出0-1之间的任意小数
Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机数。
类Random中的方法十分简单,它只有两个构造方法和六个普通方法。
构造方法:
(1)public Random() (2)public Random(long seed)
Java产生随机数需要有一个基值seed,在第一种方法中基值缺省,则将系统时间作为seed。
普通方法:
(1)public synonronized void setSeed(long seed) 该方法是设定基值seed。 (2)public int nextInt() 该方法是产生一个整型随机数。 (3)public long nextLong() 该方法是产生一个long型随机数。 (4)public float nextFloat() 该方法是产生一个Float型随机数。 (5)public double nextDouble() 该方法是产生一个Double型随机数。 (6)public synchronized double nextGoussian() 该方法是产生一个double型的Goussian随机数。
以下是Random类的各种例子测试:
import java.util.Random; public class RandomNumber { public static void main(String[] args) { // 使用java.lang.Math的random方法生成随机数 0-1 System.out.println("Math.random(): " + Math.random()); // 使用不带参数的构造方法构造java.util.Random对象 System.out.println("使用不带参数的构造方法构造的Random对象:"); Random rd1 = new Random(); // 产生各种类型的随机数 // 按均匀分布产生整数 System.out.println("int: " + rd1.nextInt()); // 按均匀分布产生长整数 System.out.println("long: " + rd1.nextLong()); // 按均匀分布产生大于等于0,小于1的float数[0, 1) System.out.println("float: " + rd1.nextFloat()); // 按均匀分布产生[0, 1)范围的double数 System.out.println("double: " + rd1.nextDouble()); // 按正态分布产生随机数 System.out.println("Gaussian: " + rd1.nextGaussian()); // 生成一系列随机数 System.out.print("随机整数序列:"); for (int i = 0; i < 5; i++) { System.out.print(rd1.nextInt() + " "); } System.out.println(); // 指定随机数产生的范围 System.out.print("[0,10)范围内随机整数序列: "); for (int i = 0; i < 10; i++) { // Random的nextInt(int n)方法返回一个[0, n)范围内的随机数 System.out.print(rd1.nextInt(10) + " "); } System.out.println(); System.out.print("[5,28)范围内随机整数序列: "); for (int i = 0; i < 10; i++) { // 因为nextInt(int n)方法的范围是从0开始的, // 所以需要把区间[5,28)转换成5 + [0, 23)。 System.out.print(5 + rd1.nextInt(23) + " "); } System.out.println(); System.out.print("利用nextFloat()生成[0,99)范围内的随机整数序列: "); for (int i = 0; i < 10; i++) { System.out.print((int) (rd1.nextFloat() * 100) + " "); } System.out.println(); System.out.println(); // 使用带参数的构造方法构造Random对象 // 构造函数的参数是long类型,是生成随机数的种子。 System.out.println("使用带参数的构造方法构造的Random对象:"); Random ran2 = new Random(10); // 对于种子相同的Random对象,生成的随机数序列是一样的。 System.out.println("使用种子为10的Random对象生成[0,10)内随机整数序列: "); for (int i = 0; i < 10; i++) { System.out.print(ran2.nextInt(10) + " "); } System.out.println(); Random ran3 = new Random(10); System.out.println("使用另一个种子为10的Random对象生成[0,10)内随机整数序列: "); for (int i = 0; i < 10; i++) { System.out.print(ran3.nextInt(10) + " "); } System.out.println(); } }
执行结果:
Math.random(): 0.03900179772838652
使用不带参数的构造方法构造的Random对象:
int: -270073819
long: 7255466478054014832
float: 0.4808815
double: 0.6083990998389226
Gaussian: -0.9127617087700918
随机整数序列:-2019302565 -1633933993 -236750885 2020511907 619139053
[0,10)范围内随机整数序列: 3 6 7 1 9 8 4 0 4 8
[5,23)范围内随机整数序列: 8 14 27 14 23 23 23 15 24 11
利用nextFloat()生成[0,99)范围内的随机整数序列: 52 88 93 62 71 66 62 38 72 94
使用带参数的构造方法构造的Random对象:
使用种子为10的Random对象生成[0,10)内随机整数序列:
3 0 3 0 6 6 7 8 1 4
使用另一个种子为10的Random对象生成[0,10)内随机整数序列:
3 0 3 0 6 6 7 8 1 4
ran2和ran3生成的随机数序列是一样的,如果使用两个没带参数构造函数生成的Random对象, 则不会出现这种情况,这是因为在没带参数构造函数生成的Random对象的种子缺省是当前系统时间的毫秒数。另外,直接使用Random无法避免生成重复的数字,如果需要生成不重复的随机数序列,需要借助数组和集合类
发表评论
-
java 内部类详解(转)
2011-06-01 15:47 4965Java 内部类 分四种:成员内部类、局部内部类、静态内部类和 ... -
Fibonacci数列计算+找出出现次数最多字符+不同数字的排列组合
2011-05-26 15:40 20971,斐波拉契数列的计算 package chapter9; ... -
java中的System类中的方法
2011-05-24 11:00 997public final class System exten ... -
java可视化显示内存使用情况
2011-05-20 16:03 2592package memoryManage; /* * ... -
java 界面swing之表格
2011-05-20 13:39 6529package othertest; import ja ... -
java的队列和栈的一些api
2011-05-16 11:31 1694类 Stack<E> java.lang.Obje ... -
JAVA 中一些api(字符字符串缓冲,URL类,Math类方法,正则表达式)
2011-05-12 10:36 1736CharBuffer字符缓冲区, StringBuffer字符 ... -
java applet 一个简单的例子(applet+html)
2011-05-09 16:49 4157java applet是一个类,其层次结构如下图: 类 JAp ... -
java 核心技术(数组(杨辉三角),散列码,对象拷贝,枚举类型,定时器)
2011-05-04 10:43 1561数组java中无多维数组,都是一维数组,多维数组可以看做是数组 ... -
设计模式总结
2011-04-26 16:50 870对于GoF总结的经典的23中设计模式,分为3类: (1)创建型 ... -
猜数字游戏
2011-04-12 17:27 1177package guessNumber; import ... -
Comparator实现排序
2011-04-01 14:13 8652在java.util包中有一个Collections类,里面实 ... -
21天学会java(含电子书下载)
2011-03-15 16:12 253221天学通java 比较基础 第一天 创建简单applicat ... -
理解浮点数存储
2011-03-15 09:44 987整体呈现 二进制浮 ... -
java.lang.UnsatisfiedLinkError解决办法
2011-03-10 16:59 1179实质上就是Eclipse下配置jdk,jre环境的问题 win ... -
java string,stringbuffer区别例子
2011-01-11 14:44 1361public class test_3 { public ... -
java定时器的使用
2011-01-11 09:20 1448有时需要在一定时间段后,执行某一个操作 java中现有的Ti ... -
对象简单克隆clone和引用(转)
2010-12-15 17:02 870对象克隆,返回和原对 ... -
java applet例子---图片像素处理
2010-12-07 17:01 1920package applet; import java. ... -
java applet例子---跟踪图片对象的加载
2010-12-07 16:56 1495用java.awt包中的MediaTracker跟踪一个Ima ...
相关推荐
在这个"90个java-swing基础例子.zip"压缩包中,你将找到90个不同的示例,涵盖了Swing的基础用法,这对于学习和理解Swing的各种功能非常有帮助。 1. **Swing组件**:Swing 提供了许多组件,如按钮(JButton),文本框...
"Java例子大全 实用版"是一个非常宝贵的资源集合,为初学者和有经验的开发者提供了丰富的学习材料。这个压缩包文件旨在帮助用户深入理解和掌握Java编程的各种概念和技术。 首先,Java例子大全涵盖了基础语法、面向...
在上述例子中,`reportCurrentTime` 方法每隔5秒会被执行一次。`fixedRate` 参数控制了执行间隔。 三、 Quartz 库 对于更复杂的需求,如复杂的调度策略、集群支持等,可以考虑使用Quartz库。Quartz是一个开源的...
java递归小例子,供初学者学习使用。九九递归
在Java编程语言中,"导出例子"通常指的是将数据或程序结果输出到文件、数据库或其他存储媒介的过程。这涉及到I/O(输入/输出)操作,是Java开发中不可或缺的一部分。下面我们将深入探讨Java导出数据的相关知识点。 ...
4. **源码使用说明.txt**:这是一个文本文件,提供了如何使用这个例子的详细步骤和注意事项,包括如何配置环境、如何调用Java方法等。通常,这样的说明文档对于初学者来说非常有帮助,因为它解释了技术细节和实践...
"JAVA代码大全的例子"提供了一套全面的实例,对于初学者来说是极好的学习资源。这个压缩包包含了一系列的Java代码示例,旨在帮助学习者理解和掌握Java编程的基本概念和高级特性。 首先,Java的核心特性包括类、对象...
java java java入门例子 包含说明和注释
在Java开发过程中,源代码是程序员的工具,通过阅读和运行这些例子,你可以直观地了解Java语法、面向对象编程的概念、异常处理、集合框架、多线程、网络编程、I/O流、数据库操作等核心知识点。下面将对这些主要知识...
"超级经典java例子"集合很可能包含了一系列展示Java核心特性和类库应用的代码示例。这些例子可以帮助开发者深入理解Java语言,并熟悉如何有效地利用Java API来解决实际问题。 1. **基础语法与数据类型**:Java提供...
这个名为"Java语言基础例子代码.rar"的压缩包提供了一系列基础Java编程的实例,旨在帮助初学者更好地理解和掌握Java编程的基本概念和操作。这些例子涵盖了数组、数学算法以及字符串处理等核心主题,对于学习Java的...
"Java简单程序小例子"是学习Java编程的初级阶段常见的实践项目,通常包含一系列基础的代码示例,帮助初学者理解语言的基本语法和常用结构。在这个项目中,"java2核心"可能指的是Java 2 Platform Standard Edition ...
非常好的java例子44非常好的java例子44
此外,"damo"标签可能是指这个例子是一个示例代码或模板,帮助初学者快速理解和实践Java Web开发中的注册登录功能。学习此例子时,建议读者理解每一行代码的作用,动手运行并调试,以加深理解。 总之,"java 注册...
java线程分析java project例子,里面分析了sleep(),join(),yield()和wait以及notify等方法的使用以及需要注意的地方。
这个“kafka java maven例子”是针对初学者的一个很好的起点,旨在帮助理解如何使用Java和Maven来操作Kafka。下面将详细阐述这个实例中涉及的核心知识点。 1. **Apache Kafka**: Kafka是一个高吞吐量、分布式的发布...
在这个“java例子源码”的压缩包中,包含了多个Java编程的基础示例,旨在帮助初学者理解语言的核心概念以及一些常见的算法和数据结构。下面将详细阐述这些知识点。 1. **Fib序列**:斐波那契数列是计算机科学中一个...
这个名为“java经典10个例子”的压缩包很可能包含了十个能够帮助初学者和有经验的开发者更好地理解和运用Java语言的关键示例。以下是这十个例子可能涵盖的知识点: 1. **Hello, World!** - 这是每个编程语言的入门...
"java学习150个经典的例子"是一个极好的资源,它涵盖了Java基础学习的各个方面,帮助初学者和进阶者深化对Java的理解并提升编程技能。 1. **基本语法与数据类型**:Java的基础包括关键字、标识符、变量、常量、数据...