我想知道MessageFormat和StringBuilder类的比较。举个例子,我有一个字符串。就性能而言,java.text.MessageFormat.format和StringBuilder("Test ").append("Hello ")中哪一个更快?
String txt = java.text.MessageFormat.format("Test {0}"," Hello")
String txt1= new StringBuilder("Test ").append("Hello ")我只想知道在最佳实践或性能方面使用哪一个
发布于 2013-03-12 18:09:34
你自己试试吧:
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 ns
StringBuilder: 16705 ns
结论:
StringBuilder的速度要快得多,因为它只是向现有数组中添加了一些字符。
发布于 2013-03-12 18:02:36
StringBuilder只将文本附加到动态缓冲区,而MessageFormat必须在附加数据之前解析给定的格式,因此StringBuilder比MessageFormat更有效。
https://stackoverflow.com/questions/15358090
复制相似问题