java - 格式化字符串和简单字符串的区别

标签 java string substring string-formatting stringbuilder

这些代码块之间有什么区别 - 在性能、内存或其他方面有什么区别吗?

第一个代码是:

String name = "Jack";
String familyName = "Hunter";

String result = String.format("Your name is %s %s",name, familyName);

第二个代码是:

String name = "Jack";
String familyName = "Hunter";

String result = "Your name is " + name + " " + familyName;

感谢您的关注;-)

最佳答案

它产生的输出没有区别。 result 变量在每种情况下都将具有相同的内容。

但是 String.format() 的存在使您可以进行更强大的格式化,包括指定 float 的小数位数等。

我希望 String.format() 版本相对较慢,只是因为它更强大,并且在执行与您基本相同的操作之前必须检查格式字符串的内容'正在你的第二个版本中做。换句话说,它必须花一些时间来计算出你想要做什么,而在第二个版本中,编译器可以自己计算出它。

但是,实际上,出于性能原因在这里选择一个片段而不是另一个片段看起来像是一种几乎永远不会有返回的微优化。除非您对性能有明确的需求(即,它在一个紧密循环中运行以实现对性能至关重要的任务),否则您应该选择更具可读性的。

关于java - 格式化字符串和简单字符串的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27340696/

相关文章:

java - 在 Windows 和 Linux 上运行 java awt 代码时的不同结果

c++ - 如何打印有序 C++ 字符串数组的直方图?

c - 在 C 中不使用 strtok 提取出现次数的更简单方法

c# - 检查一个单词是否包含不在字母表数组中的字符

java - 将字符串分成三分之一

javascript - 如何从最后一次看到的字符串中获取JavaScript中特定字符的子字符串?

java - 关闭 JiraRestClient 的 ssl 证书验证

java - 在循环内声明新变量如何不会出错?

java - 如何使用 Wildfly 和 Maven 设置 Jacoco

arrays - 如何将字符串转换为字符串数组