当前位置: 首页 > 知识库问答 >
问题:

将整数连接成字符串的最快方法

祁鸿晖
2023-03-14

我有一个对象,它在初始化时接受一个字符串来标识它的名称。

String name = "MyObject" + Integer.toString(objectNum);
object = new Object(name);

在上面的示例中,名称遵循一个约定,即整数与字符串“MyObject”连接在一起。一位同事抱怨说,由于int到字符串的转换,我编写这段代码的方式从性能角度来看其实很糟糕。这个数字是作为一个int接收的,我对此无能为力。object参数必须包含字符串。我怎么能让这更快?使用字符串格式会有帮助吗?

共有1个答案

祝锐
2023-03-14
"MyObject" + objectNum

是最好的。objectNum自动有效转换为字符串

专注于可读性,让Java操心连接它的最佳方式。

“MyObject”+Integer.ToString(objectNum)的性能问题是,它从int显式创建一个字符串,然后将其连接到前面的字符串。它往往被编译成如下内容:

new StringBuilder("MyObject").append(Integer.toString(objectNum)).toString()

也就是...工作方法。

但是,StringBuilderappend(int),如果它知道参数是int,则可以更有效地执行操作。“MyObject”+objectNum仍然会变成类似于:

new StringBuilder("MyObject").append(objectNum).toString()

这就避免了为objectnum创建string

尽管如此,JIT可以很好地识别“MyObject”+Integer.ToString(objectNum)模式,并像“MyObject”+objectNum那样有效地执行它(反之亦然,ofc,如果它确定这样更有效率的话),因此不会有实际的性能差异。

鉴于此,您应该使用更容易阅读的表单,并且只需相信JIT会尽其所能执行代码并尽可能快地执行代码。

 类似资料:
  • 问题内容: 使用PHP,将这样的字符串转换为整数的最快方法是什么? 为什么该特定方法最快?如果它收到意外的输入(例如或数组)会怎样? 问题答案: 我刚刚进行了快速基准测试: 平均而言,调用intval()的速度要慢两倍半,并且如果您的输入已经是整数,则相差最大。 我想知道 为什么 。 更新:我再次使用强制性进行测试 附录: 我刚刚遇到了一种意想不到的行为,选择以下一种方法时应注意: 使用PHP 5

  • 问题内容: 给出以下无害的小清单: 我的目标是使用以下方法之一以Python方式串联小恶魔: A. plain ol’string函数来完成工作,简短,没有导入 B.lambda,lambda,lambda C.全球化(什么都不做,什么都导入) 请提出其他蟒蛇般的方法来完成这项宏大的任务。 请对解决方案进行排名(python级别),并对解决方案进行评分,并给出简洁的解释。 在这种情况下,最Pyth

  • 问题内容: 我正在寻找一种将不同行中的字符串聚合为一行的方法。我希望在许多不同的地方进行此操作,因此具有促进此操作的功能会很好。我已经尝试过使用和解决方案,但它们只是不适合我。 字符串聚合将执行以下操作: 我看过CLR定义的聚合函数来代替和,但是显然 SQL Azure 不 支持CLR定义的东西,这让我很痛苦,因为我知道能够使用它可以解决很多问题。我的问题。 有什么可能的解决方法,或者类似的最优方

  • 本文向大家介绍javascript中拼接HTML字符串的最快、最好的方法,包括了javascript中拼接HTML字符串的最快、最好的方法的使用技巧和注意事项,需要的朋友参考一下 第一种:逐个字符串相加 这种最常见的,但是效率最低!代码逻辑相对来说复杂。 第二种:逐个 push 进数组 比上一种方法稍微快一些,但还是不够好… 第三种:直接join() 使用原生的方法(比如 join()),不管它后

  • 问题内容: 在JavaScript中,我有一个包含许多迭代的循环,并且在每个迭代中,我正在创建一个包含许多运算符的巨大字符串。有没有更有效的方式来创建字符串?我正在考虑创建一个动态数组,在该数组中不断向其中添加字符串,然后进行联接。谁能解释并举例说明最快的方法吗? 问题答案: 基于JSPerf的基准测试,似乎是使用最快的方法,尽管不一定在每个浏览器中都使用。 为了在DOM中构建字符串,最好先将字符

  • 问题内容: 我可以猜测浏览器已针对最新版本进行了优化,但是如何做到这一点呢?我们可以说串联字符串时最好使用吗? 更新资料 因此,在现代浏览器中,对字符串串联进行了优化,因此使用符号比要 串联 字符串时使用符号要快。 但是@Arthur指出,如果您实际上想使用分隔符连接字符串,则速度会更快。 问题答案: 浏览器字符串优化已更改了字符串串联图片。 Firefox是第一个优化字符串连接的浏览器。从1.0