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

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

Java 实例 - 字符串优化

Java 实例 Java 实例

以下实例演示了通过 String.intern() 方法来优化字符串:

StringOptimization.java 文件

publicclassStringOptimization{publicstaticvoidmain(String[]args){Stringvariables[] = newString[50000]; for(inti=0;i <50000;i++){variables[i] = "s"+i; }longstartTime0 = System.currentTimeMillis(); for(inti=0;i<50000;i++){variables[i] = "hello"; }longendTime0 = System.currentTimeMillis(); System.out.println("直接使用字符串: "+ (endTime0 - startTime0) + " ms"); longstartTime1 = System.currentTimeMillis(); for(inti=0;i<50000;i++){variables[i] = newString("hello"); }longendTime1 = System.currentTimeMillis(); System.out.println("使用 new 关键字:" + (endTime1 - startTime1) + " ms"); longstartTime2 = System.currentTimeMillis(); for(inti=0;i<50000;i++){variables[i] = newString("hello"); variables[i] = variables[i].intern(); }longendTime2 = System.currentTimeMillis(); System.out.println("使用字符串对象的 intern() 方法: " + (endTime2 - startTime2) + " ms"); }}

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

直接使用字符串: 3 ms
使用 new 关键字:5 ms
使用字符串对象的 intern() 方法: 10 ms

Java 实例 Java 实例

AI 思考中...

1 篇笔记 写笔记

  1. #0

    jjr

    pko***sina.com

    19

    由于初始值不一样,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毫秒

    jjr

    pko***sina.com

    7年前 (2020年01月13日)

点我分享笔记

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

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