- Java 程式設計範例
- 範例 - 首頁
- 範例 - 環境
- 範例 - 字串
- 範例 - 陣列
- 範例 - 日期和時間
- 範例 - 方法
- 範例 - 檔案
- 範例 - 目錄
- 範例 - 異常
- 範例 - 資料結構
- 範例 - 集合
- 範例 - 網路
- 範例 - 執行緒
- 範例 - 小程式
- 範例 - 簡單 GUI
- 範例 - JDBC
- 範例 - 正則表示式
- 範例 - Apache PDF Box
- 範例 - Apache POI PPT
- 範例 - Apache POI Excel
- 範例 - Apache POI Word
- 範例 - OpenCV
- 範例 - Apache Tika
- 範例 - iText
- Java 教程
- Java - 教程
- Java 的有用資源
- Java - 快速指南
- Java - 有用資源
如何在 Java 中最佳化字串建立
問題描述
如何最佳化字串建立?
解決方案
利用 String.intern() 方法,以下範例優化了字串建立。
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 : 31 ms Creation time of String objects with intern(): 16 ms
java_strings.htm
廣告