在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