性能问题:“java.text.MessageFormat.format” VS“的StringBu

2019-08-17 12:05发布

我想知道,在比较MessageFormatStringBuilder类。 我们说一个例子,我有一个字符串。 出于性能明智的哪一个是中快: java.text.MessageFormat.formatStringBuilder("Test ").append("Hello ")

String txt = java.text.MessageFormat.format("Test {0}"," Hello") 
String txt1=   new StringBuilder("Test ").append("Hello ")

我只是想知道哪一个是最好的练习或表演的情况下,使用明智的

Answer 1:

自己尝试一下:

long start = System.nanoTime();
String txt = MessageFormat.format("Test {0}"," Hello");
System.out.println("MessageFormat: " + (System.nanoTime() - start) + " ns");

start = System.nanoTime();
String txt1 = new StringBuilder("Test ").append("Hello").toString();
System.out.println("StringBuilder: " + (System.nanoTime() - start) + " ns");

输出:

的MessageFormat:1125974纳秒

StringBuilder的:16705个NS

结论:

StringBuilder工作更快,因为它只是增加了一些字符,以现有的阵列。



Answer 2:

StringBuilder不只是文本追加到动态缓冲器,而MessageFormat具有附加数据之前解析所述给定的格式,则StringBuilder比更有效MessageFormat



文章来源: Performance issue: “java.text.MessageFormat.format” vs “StringBuilder”