草庐IT

random_line

全部标签

java - 这个损坏的 Java Random.nextInt(long) 行为是怎么回事?

我发现当你给它一个2的幂时,这个方法似乎会惨败)和2的幂(互斥)总是相同;种子无所谓。例如:publicstaticvoidmain(String[]args){RandommRandom;for(inti=0;i我随意选择了2^4,但它似乎适用于任何2的幂。这是怎么回事?此外,我该如何避免这种情况? 最佳答案 出现这个问题有两个原因。Random类的相同种子。在nextInt(intn),如果n是2的幂1。Random类的种子相同。因为,您已经使用新的seed值启动了新的Random实例,这会影响nextInt值的生成。根据Ran

java - Cobertura Maven 插件在 Windows 上失败并显示 "The command line is too long"

当我使用lengthyconfiguration在Windows8.1上运行cobertura-maven-plugin时(用于禁止项目中的任何覆盖率下降)cobertura:check目标失败并出现错误命令行太长。问题可能与Commandprompt(Cmd.exe)command-linestringlimitation有关,因为当我限制提供给Cobertura的配置数量时它会消失。此外,它在Linux上运行良好。我怎样才能克服这个问题?调试级别的日志:[DEBUG]Executingcommandline:[DEBUG]cmd.exe/X/C""C:\ProgramFiles\J

java - 在哪里可以找到 String::lines 实现?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我找到了https://bugs.openjdk.java.net/browse/JDK-8200425讨论新的String::lines方法。我想看看函数的实现。问题是,我真的不知道在哪里可以找到它。我已经尝试查看http://hg.openjdk.java.net/jdk但没有运气。有人知道实现在哪里吗?

java - 我应该缓存 System.getProperty ("line.separator")吗?

考虑这样的方法:@OverridepublicStringtoString(){finalStringBuildersb=newStringBuilder();for(finalRoomroom:map){sb.append(room.toString());sb.append(System.getProperty("line.separator"));//THISISIMPORTANT}returnsb.toString();}System.getProperty("line.separator")可以多次调用。我应该用publicfinalstaticStringlineSeper

Java Random,种子的微小变化只会导致输出的微小变化

在用Java制作map生成器时,我发现他们的随机数生成器有一个相当令人不安的问题,具体来说,当两个RNG具有非常相似的种子(小整数不同)时,它们的第一个输出值将变得非常相似!示例代码:Randomr=newRandom();longn=100000;//Chooseanynumberr.setSeed(n);System.out.println(r.nextInt());r.setSeed(n+1);System.out.println(r.nextInt());这几乎打破了我对原始JavaRNG的信心,因为我使用坐标来为map生成器提供种子。有人可以建议重新定义Random.next

java - 具有跨不同 Java 版本的恒定种子的 Random 的可靠性

在我们的应用程序中,我们使用Random和SecureRandom为某些客户生成一些非常大的信息集。经过一些测量,我们意识到使用存储在磁盘上的种子重新生成信息比存储和读取该信息更快,占用的内存更少。我查看了javadoc,但没有看到任何保证给定常量种子n的结果,比方说,newRandom(n).nextInt()在不同的Java版本中应该是相同的。我的问题是:对于Java8和以前的版本,这是一个安全的假设吗,Java8中的newRandom(n).nextInt()应该返回与以前版本的Java中的值相同吗?(为了公平起见,我会接受回答上述问题的答案,即使他们不回答下面的问题。)虽然我知

java - FindBugs RV_ABSOLUTE_VALUE_OF_RANDOM_INT 警告

我正在尝试使用FindBugs对我们的项目进行代码审查。我们有一个方法来生成唯一的id(随机):publicstaticStringgenerateUUID(intbase){returnString.valueOf(getCurrentTimeInNanos((long)base))+String.valueOf(Math.abs(random.nextInt()));}并且findBugs指示RV_ABSOLUTE_VALUE_OF_RANDOM_INT警告(RV:错误尝试计算带符号的32位随机整数的绝对值),我猜问题出在String.valueOf(Math.abs(random

java - 文件.write() : appending new lines in a text file

我正在使用下面的代码写入一个文本文件Stringcontent="ILoveJava";Files.write(Paths.get(gg),(content+"\n").getBytes(UTF_8),StandardOpenOption.CREATE,StandardOpenOption.APPEND);运行3次后,文本保存到文本中为:ILoveJavaILoveJavaILoveJava但是,我希望文本文件中的文本看起来像:ILoveJavaILoveJavaILoveJava有什么帮助吗? 最佳答案 您应该避免特定的新行分隔符

Java:为什么检查 "\n"与使用 System.getProperty ("line.separator"添加的新行不匹配)

(更新问题)首先,我认为"\n"等同于System.getProperty("line.separator")我写了一些方法来处理字符串,其中一些检查新行的存在if(string.charAt(i)=='\n'){//做某事;}但我注意到检查"\n"与System.getProperty("line.separator")添加的新行不匹配这是一个SSCCE来证明我的主张!:描述:两个相同文本的字符串;一个alpha_String使用"\n"添加了新行,另一个beta_String使用System.getProperty("line.separator")有一个名为Stringremov

java - 使用 Random.setSeed 的重要性是什么?

编写Java程序时,我们使用setSeed在Random类中。我们为什么要使用这种方法?我们不能只使用Random而不使用setSeed吗?使用setSeed的主要目的是什么? 最佳答案 它的一个用途是它使您能够在未来重现您的程序的结果。例如,我想为数据库中的每一行计算一个随机变量。我希望程序可以重现,但我希望行之间具有随机性。为此,我将随机数种子设置为每一行的主键。这样,当我再次运行该程序时,我得到了相同的结果,但在行之间,随机变量是伪随机的。 关于java-使用Random.setS