菜鸟教程 -- 学的不仅是技术,更是梦想!

Java 教程
(追記) (追記ここまで)

Java 实例 - 字符串性能比较测试

Java 实例 Java 实例

以下实例演示了通过两种方式创建字符串,并测试其性能:

StringComparePerformance.java 文件

publicclassStringComparePerformance{publicstaticvoidmain(String[]args){longstartTime = System.currentTimeMillis(); for(inti=0;i<50000;i++){Strings1 = "hello"; Strings2 = "hello"; }longendTime = System.currentTimeMillis(); System.out.println("通过 String 关键词创建字符串" + " : "+ (endTime - startTime) + " 毫秒"); longstartTime1 = System.currentTimeMillis(); for(inti=0;i<50000;i++){Strings3 = newString("hello"); Strings4 = newString("hello"); }longendTime1 = System.currentTimeMillis(); System.out.println("通过 String 对象创建字符串" + " : " + (endTime1 - startTime1) + " 毫秒"); }}

以上代码实例输出结果为:

通过 String 关键词创建字符串 : 6 毫秒 
通过 String 对象创建字符串 : 14 毫秒

Java 实例 Java 实例

AI 思考中...

2 篇笔记 写笔记

  1. #0

    Chopin

    cho***[email protected]

    11

    当循环的次数较少时,使用毫秒效果不明显,建议使用纳秒:

    System.nanoTime();

    Chopin

    cho***[email protected]

    9年前 (2017年07月13日)
  2. #0

    虚名

    kqd***[email protected]

    12

    由于初始值不一样,3次比较出来的时间不具有对比性,应在同等条件下比较计算花费时间;

    public class StringOptimization {
     public static void main(String[] args) {
     String variables[] = new String[50000];
     long startTime0 = System.currentTimeMillis();
     for (int i = 0; i < 50000; i++) {
     variables[i] = "hello";
     }
     long endTime0 = System.currentTimeMillis();
     System.out.println("使用字面量直接赋值字符串,花费时间:" + (endTime0 - startTime0) + "毫秒");
     String variables1[] = new String[50000];
     long startTime1 = System.currentTimeMillis();
     for (int i = 0; i < 50000; i++) {
     variables1[i] = new String("hello");
     }
     long endTime1 = System.currentTimeMillis();
     System.out.println("使用字符串对象花费时间:" + (endTime1 - startTime1) + "毫秒");
     String variables2[] = new String[50000];
     long startTime2 = System.currentTimeMillis();
     for (int i = 0; i < 50000; i++) {
     variables2[i] = new String("hello");
     variables2[i] = variables2[i].intern();
     }
     long endTime2 = System.currentTimeMillis();
     System.out.println("使用字符串对象intern()方法花费时间:" + (endTime2 - startTime2) + "毫秒");
     }
    }

    输出结果为:

    使用字面量直接赋值字符串,花费时间:1毫秒
    使用字符串对象花费时间:3毫秒
    使用字符串对象intern()方法花费时间:8毫秒
    

    虚名

    kqd***[email protected]

    8年前 (2018年07月25日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /