最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
J2ME中Random类的使用
时间:2022-07-02 17:44:02 编辑:袖梨 来源:一聚教程网
在J2ME中,由于大部分的游戏都会涉及到随机性的事件,Random类自然就成为J2ME程序员经常使用的一个类了。但是对于新手来说,Random类看似简单,也有可能会出现这样那样的错误。所以在这里把我对于这个类的使用心得总结一下。
random类在CLDC1.0中就已经定义了。这个类有两个构造函数Random() 和Random(long seed) 并且提供了四个常用方法:
next(int bits)
nextInt()
nextLong()
setSeed(long seed)
其中next(int bits)用来产生指定范围的随机数,即:
next(1)产生2的1次方之内的随机数
next(2)产生2的2次方之内的随机数
next(3)产生2的3次方之内的随机数
...............................
next(n)产生2的n次方之内的随机数
...............................
next(32)产生2的32次方之内的随机数,就相当于nextInt()了
nextInt()用来产生随机整数,最大2的32次方
nextLong()用来产生随机长整数,最大2的64次方
setSeed(long seed) 用于设定随机数的种子,即这里的seed。随机数种子的用处是:一般说来,这里的Random类产生随机数是伪随机数,是系统采用特定的算法生成出来的,关于这一点我们可以采用一个试验来证明。方法是new两个Random类random1和random2。各自调用nextInt方法10次,我们可以看出,虽然各自产生的是随机数,但是两个Random类产生的随机数都是一样的。这就使得随机数存在着漏洞。如果这样的随机数用在安全应用上面,就达不到预想的效果了。所以Random类提供了这个方法,以进一步提高随机性。
在这里需要特别为新手朋友们指出的是,我们在使用随机数的时候,不能每次都new 一个 Random类出来,又不设定随机数种子,因为那样作的结果是,每次产生的随机数都是一样的。
将一个“错误”的例子写在这里:
import java.util.Random;
import javax.microedition.midlet.*;
public class J2ME extends MIDlet {
private Random random;
public J2ME() {
}
protected void startApp() throws MIDletStateChangeException {
for (int i = 0; i < 20; i++) {
random=new Random();
System.out.println(random.nextInt());
}
}
protected void pauseApp() {
random类在CLDC1.0中就已经定义了。这个类有两个构造函数Random() 和Random(long seed) 并且提供了四个常用方法:
next(int bits)
nextInt()
nextLong()
setSeed(long seed)
其中next(int bits)用来产生指定范围的随机数,即:
next(1)产生2的1次方之内的随机数
next(2)产生2的2次方之内的随机数
next(3)产生2的3次方之内的随机数
...............................
next(n)产生2的n次方之内的随机数
...............................
next(32)产生2的32次方之内的随机数,就相当于nextInt()了
nextInt()用来产生随机整数,最大2的32次方
nextLong()用来产生随机长整数,最大2的64次方
setSeed(long seed) 用于设定随机数的种子,即这里的seed。随机数种子的用处是:一般说来,这里的Random类产生随机数是伪随机数,是系统采用特定的算法生成出来的,关于这一点我们可以采用一个试验来证明。方法是new两个Random类random1和random2。各自调用nextInt方法10次,我们可以看出,虽然各自产生的是随机数,但是两个Random类产生的随机数都是一样的。这就使得随机数存在着漏洞。如果这样的随机数用在安全应用上面,就达不到预想的效果了。所以Random类提供了这个方法,以进一步提高随机性。
在这里需要特别为新手朋友们指出的是,我们在使用随机数的时候,不能每次都new 一个 Random类出来,又不设定随机数种子,因为那样作的结果是,每次产生的随机数都是一样的。
将一个“错误”的例子写在这里:
import java.util.Random;
import javax.microedition.midlet.*;
public class J2ME extends MIDlet {
private Random random;
public J2ME() {
}
protected void startApp() throws MIDletStateChangeException {
for (int i = 0; i < 20; i++) {
random=new Random();
System.out.println(random.nextInt());
}
}
protected void pauseApp() {
相关文章
- 《迷你世界》围墙怎么建造-围墙的建造方法 03-24
- 抖音网页版免费观看入口-抖音官网免费进入通道 03-24
- 蓝色星原旅谣炎灼角羊有什么技能 炎灼角羊强度评测分析 03-24
- 《迷你世界》如何制作不使用发射器的陷阱-制作无发射器陷阱的方法 03-24
- WhatsApp Business安卓最新版本下载入口-WhatsApp网页版官方安装入口 03-24
- 粒粒的小人国乐器怎么玩 乐队演奏玩法攻略 03-24