如何在 Java 中比较字符串创建的性能



问题描述

如何比较字符串创建的性能?

解决方案

以下示例比较了以两种不同方式创建的两个字符串的性能。

public class StringComparePerformance {
   public static void main(String[] args) {      
      long startTime = System.currentTimeMillis();
      
      for(int i = 0; i < 50000; i++) {
         String s1 = "hello";
         String s2 = "hello"; 
      }
      long endTime = System.currentTimeMillis();
      System.out.println("Time taken for creation" 
         + " of String literals : "+ (endTime - startTime) 
         + " milli seconds" );       
      long startTime1 = System.currentTimeMillis();
      
      for(int i = 0; i < 50000; i++) {
         String s3 = new String("hello");
         String s4 = new String("hello");
      }
      long endTime1 = System.currentTimeMillis();
      System.out.println("Time taken for creation" 
         + " of String objects : " + (endTime1 - startTime1)
         + " milli seconds");
   }
}

结果

上面的代码样本会生成以下结果。结果可能有所不同。

Time taken for creation of String literals : 0 milli seconds
Time taken for creation of String objects : 16 milli seconds
java_strings.htm
广告