感兴趣的同学可以把下面的代码copy到机器上执行看看(例如java GenRandomStringTest 50 100 1024),会发现是挺耗CPU的,原因是什么呢? 有什么建议吗?
GenRandomStringTest代码如下,也可从这下载
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import
java.util.Random;
public
class
GenRandomStringTest {
public
static
void
main(String[] args)
throws
Exception{
int
threadNums = Integer.parseInt(args[
0
]);
int
keySize = Integer.parseInt(args[
1
]);
int
valueSize = Integer.parseInt(args[
2
]);
for
(
int
i =
0
; i < threadNums; i++) {
new
Thread(
new
Test(keySize,valueSize)).start();
}
}
}
class
Test
implements
Runnable{
private
Random rand =
new
Random();
private
int
keySize =
0
;
private
int
valueSize =
0
;
public
Test(
int
keySize,
int
valueSize){
this
.keySize = keySize;
this
.valueSize = valueSize;
}
public
void
run() {
while
(
true
){
RandomStringUtils.generateBytes(keySize);
RandomStringUtils.generateBytes(valueSize);
try
{
Thread.sleep(rand.nextInt(
2
));
}
catch
(Exception e){
}
}
}
}
|
RandomStringUtils代码如下,由于blog渲染有问题,会丢失代码,只好截图如下了,也可从这下载
:
ps: 不过话说以这种方式随机生成指定大小的字符串还是挺耗时的,也欢迎提供建议,:).
源码如下:
import java.util.Random;
public class RandomStringUtils {
private static final String KEY_SEED="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
private static final int KEY_SEED_LEN=KEY_SEED.length();
private static final char[] KEY_SEED_CHARS=KEY_SEED.toCharArray();
private static Random random = new Random();
public static byte[] generateBytes(int length){
StringBuilder keyBuilder=new StringBuilder(length);
for (int i = 0; i < length; i++) {
keyBuilder.append(KEY_SEED_CHARS[random.nextInt(KEY_SEED_LEN)]);
}
return keyBuilder.toString().getBytes();
}
}
分享到:
相关推荐
在这个场景中,"随机生成32位字符串"是一个常见的需求,例如在创建唯一标识符、生成安全密码或进行加密算法时。下面将详细介绍如何在VB中实现这一功能。 首先,我们要了解VB中的字符串是由一系列字符组成的,每个...
在C#编程语言中,生成随机字符串是一项常见的任务,它在许多应用场景中都有用到,例如测试数据的生成、密码的生成以及唯一标识符的创建等。本篇将深入探讨如何在C#中生成指定长度、包含字母或数字或者两者的混合随机...
以下是一个简单的示例代码,用于生成随机大小写字母字符串: ```csharp using System; public static string GenerateRandomString(int length) { Random random = new Random(); const string chars = ...
这段代码将输出一个长度为24的大写字母组成的随机字符串。 #### 四、总结 本文档详细介绍了一种基于Java的随机字符串生成方法,通过定义一个枚举类型来区分不同的字符串组成规则,并提供了一个简单的接口来生成...
在这段代码中,最后使用`echo`语句调用`randStr(10)`来输出一个10位的随机字符串。` `标签用于换行,以便在浏览器中显示清晰的输出结果。 从这段代码中,我们可以提炼出几个关键知识点: 1. `rand()`函数:在...
而“正则表达式随机生成字符串工具”则是一个能够根据预设的正则规则,自动生成符合该规则的随机字符串的实用程序。 这个工具的核心功能在于其灵活性和多样性。通过定义不同的正则表达式,用户可以生成各种类型的...
在循环内部,每次迭代都会生成一个新的随机字符并添加到结果字符串中。 5. **条件判断**:如果需要限制某些字符的出现(例如,避免连续相同的字符),可以添加条件判断语句,如`如果...则`,在生成字符后检查是否...
总的来说,生成随机字符串和数字在C#编程中是一项基础且实用的技能。通过掌握`Random`类的使用和字符串操作,你可以轻松应对各种需求,无论是简单的测试数据填充还是复杂的安全性要求。在Visual Studio 2008中,这些...
本工具用于生成随机字符串,可以自定义字符池及字符串长度。欢迎下载使用! 本工具用于生成随机字符串,可以自定义字符池及字符串长度。欢迎下载使用!
根据java正则表达式生成一个随机的字符串,具体可以去一下网站看:https://code.google.com/p/xeger/
js随机生成32位字符串 包含大小写
最近做个功能,需要用到随机字符串,在网上整理了一些代码,生成随机字符串 可以设置生成的随机字符的取间..
Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...
2. 初始化一个空字符串作为结果,用于存放生成的随机字符。 3. 根据需求设置循环次数,如取十万个字符,就设置循环100000次。 4. 在每次循环中,生成一个随机数,根据这个随机数的范围选择对应的字符集。 5. 使用...
本文将详细介绍如何在Java中生成随机字符串,并且会结合给定的部分代码示例进行深入分析。 #### 基本原理与方法 Java提供了多种方法来生成随机字符串,主要包括使用`java.util.Random`类和`java.security....
此方法是最常见的一种生成随机字符串的方式,它首先定义一个包含所有可能字符的字符串池,然后通过随机数生成器从中选择字符来构建随机字符串。 **代码示例:** ```java public String make() { String radStr = ...
java语言产生随机字符串代码正确版.txt
在网络安全中,随机字符串通常用于生成一次性密码(OTP)、加密密钥、验证码等,因为它们难以被猜测或破解。真正的随机性是通过随机数生成器(RNG)来实现的,这可以是硬件RNG,也可以是软件实现的伪随机数生成器...
System.out.println("请随机输入一段字符串"); Scanner scan = new Scanner(System.in); String str = scan.nextLine(); char s[] = str.toCharArray(); int char_num=0;//计算字母 int num = 0;//计算数字 ...