gpt4 book ai didi

java - Java 的 printf() 方法对于连接和打印字符串是否有效?

转载 作者:搜寻专家 更新时间:2023-11-01 03:36:40 25 4
gpt4 key购买 nike

<分区>

更新:我通过连接 + 运算符进行了测试,性能几乎与使用StringBuilder(最后结果)。正如你们中的一些人在回答中提到的那样,这表明性能较慢是由于格式分析造成的。

结论:Java 的 printf() 不是连接和打印字符串的有效方法。应使用 + 运算符或最好使用 StringBuilder 以获得更好的性能。

Java 的 printf() 在创建字符串时是否使用慢速连接?即它是否在将每个元素附加到最终字符串后创建一个新字符串?

我测试了使用 StringBuilder 来创建字符串,我获得了大约运行时间快 4 倍的性能改进。这部分程序在我的程序中被调用了数千次。

两个测试之间的唯一区别是以下代码块:

1) printf()(0.8 秒):

System.out.printf("%d %d %d %d %d %d\n", nums[a], nums[b],
nums[c], nums[d], nums[e], nums[f]);

2) StringBuilder + println()(0.2 秒):

StringBuilder sb = new StringBuilder();
sb.append(nums[a]);
sb.append(' ');
sb.append(nums[b]);
sb.append(' ');
sb.append(nums[c]);
sb.append(' ');
sb.append(nums[d]);
sb.append(' ');
sb.append(nums[e]);
sb.append(' ');
sb.append(nums[f]);
System.out.println(sb.toString());

3) + 运算符 + println()(0.22 秒):

System.out.println(nums[a] + " " + nums[b] + " " + nums[c] + " " + nums[d] + " "
+ nums[e] + " " + nums[f]);

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com