zoukankan      html  css  js  c++  java
  • 字符串拼接性能对比

    总是在思考为什么要用MessageFormat.format,如果只是简单的拼接效率高还是使用format效率高:

    转https://blog.csdn.net/cockroach02/article/details/53925119,完善了部分.

    public static void main(String[] args) {
    
            int count = 10000000;
    
            long start = System.currentTimeMillis();
            for (int i = 0; i < count; i++) {
                String s = "Hi " + i + "; Hi to you " + i * 2;
            }
            long end = System.currentTimeMillis();
            System.out.println("Concatenation = " + ((end - start)) + " millisecond");
    
    
            start = System.currentTimeMillis();
            for (int i = 0; i < count; i++) {
                String s = String.format("Hi %s; Hi to you %s", i, +i * 2);
            }
            end = System.currentTimeMillis();
            System.out.println("Format = " + ((end - start)) + " millisecond");
    
    
            start = System.currentTimeMillis();
            for (int i = 0; i < count; i++) {
                String s = MessageFormat.format("Hi %s; Hi to you %s", i, +i * 2);
            }
            end = System.currentTimeMillis();
            System.out.println("MessageFormat%s = " + ((end - start)) + " millisecond");
    
            start = System.currentTimeMillis();
            for (int i = 0; i < count; i++) {
                String s = MessageFormat.format("Hi {0}; Hi to you {1}", i, +i * 2);
            }
            end = System.currentTimeMillis();
            System.out.println("MessageFormat${} = " + ((end - start)) + " millisecond");
    
            start = System.currentTimeMillis();
            for (int i = 0; i < count; i++) {
                StringBuilder bldString = new StringBuilder("Hi ");
                bldString.append(i).append("; Hi to you ").append(i * 2).toString();
            }
            end = System.currentTimeMillis();
            System.out.println("StringBuilder = " + ((end - start)) + " millisecond");
    
        }
    

    执行结果:
    Concatenation = 785 millisecond
    Format = 10036 millisecond
    MessageFormat%s = 2298 millisecond
    MessageFormat${} = 21874 millisecond
    StringBuilder = 903 millisecond
    发现字符串拼接的效率并不低的.但是为什么要使用MessageFormat.format方法呢?
    原来,format的方法是相当于占位符的,这样格式和参数很好的能够理解.
    举个栗子:
    有时候返回前端一个列表的时候,需要我们自己返回前端的代码;
    String[] tdArr=…;
    String result=MessageFormat.format("{0}{1}{2}{3}", tdArr);
    如果一个一个拼接,就会不方便阅读,使用MessageFormat.format就很容易阅读.

    世界上所有的不公平都是由于当事人能力不足造成的.
  • 相关阅读:
    2021/1/10周总结一
    java基础复习五
    java基础复习四
    构建之法读书笔记三
    javaweb学生教务系统
    java基础复习三
    关于eclipse项目错误的一些小经验总结
    Java基础复习二
    JavaDoc文档
    2017-2018-2 20179216 《网络攻防与实践》 第四周总结
  • 原文地址:https://www.cnblogs.com/javayida/p/13346856.html
Copyright © 2011-2022 走看看