这些代码块之间有什么区别 - 在性能、内存或其他方面有什么区别吗?
第一个代码是:
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/