栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java 8:字符串连接操作对性能有重大影响

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 8:字符串连接操作对性能有重大影响

首先是第一件事。 这不是您的微平台Java方式

阅读如何在Java中编写正确的微基准测试?第一。您的电话号码完全无关紧要,因此请忽略它们。

看第二个例子:

abc= "AZY"+"BAX"+"CBA"+...

在我看来,这些看起来像编译时间常数。这

String
将在编译时连接起来,并且没有基准可言。这是无用的比较,因为
StringBuilder
or
的全部要点
String.join
是将
String
不是编译时间常数的s 连接在一起。

继续比较

StringBuilder
String.join
。查看源代码:

public static String join(CharSequence delimiter, CharSequence... elements) {    Objects.requireNonNull(delimiter);    Objects.requireNonNull(elements);    // Number of elements not likely worth Arrays.stream overhead.    StringJoiner joiner = new StringJoiner(delimiter);    for (CharSequence cs: elements) {        joiner.add(cs);    }    return joiner.toString();}

这使用

StringJoiner
。一个
StringJoiner
简单地使用
StringBuilder
引擎盖下,所以两者是等效的。

通常看 代码 比尝试对性能进行基准测试要有用得多。即使您正确进行基准测试。

还值得注意的是,您的第一种方法使用

join
String
在“”(空格)上加入了1000
s。而您的
StringBuilder
方法只是将它们附加在一起。这两个不一样。

String.join
方法的重点是您可以执行以下操作:

String.join(", ", "a", "b", "c") // result is "a, b, c"

使用a,

StringBuilder
您将不得不添加更多代码。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463909.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号