如何優化字串建立?

2019-10-16 22:31:23

在Java中,如何優化字串建立?

以下範例使用String.intern()方法優化字串建立。

package com.yiibai;

public class StringOptimization {
    public static void main(String[] args) {
        String variables[] = new String[50000];
        for (int i = 0; i < 50000; i++) {
            variables[i] = "s" + i;
        }
        long startTime0 = System.currentTimeMillis();

        for (int i = 0; i < 50000; i++) {
            variables[i] = "hello";
        }
        long endTime0 = System.currentTimeMillis();
        System.out.println("Creation time" + " of String literals : "
                + (endTime0 - startTime0) + " ms");
        long startTime1 = System.currentTimeMillis();

        for (int i = 0; i < 50000; i++) {
            variables[i] = new String("hello");
        }
        long endTime1 = System.currentTimeMillis();
        System.out.println("Creation time of"
                + " String objects with 'new' key word : "
                + (endTime1 - startTime1) + " ms");
        long startTime2 = System.currentTimeMillis();

        for (int i = 0; i < 50000; i++) {
            variables[i] = new String("hello");
            variables[i] = variables[i].intern();
        }
        long endTime2 = System.currentTimeMillis();
        System.out.println("Creation time of"
                + " String objects with intern(): " + (endTime2 - startTime2)
                + " ms");
    }
}

執行上面範例程式碼,得到以下結果 -

Creation time of String literals : 0 ms
Creation time of String objects with 'new' key word : 0 ms
Creation time of String objects with intern(): 15 ms