20180914-Java实例03

本文通过具体实例对比了Java中使用String关键字与String对象创建字符串的性能差异,结果显示前者性能更优。此外,还介绍了如何利用String.intern()方法进行字符串优化,实测表明,与直接使用new关键字相比,结合intern()方法可以显著提高性能。

 


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


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


// StringComparePerformance.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.prinln("通过String 关键字创建字符串"
+":" +(endTime - startTime) + "毫秒");

long startTime1 = System.currentTimeMillis();
for(int i=0;i<50000;i++){
String s3 = new String("hello");
String s4 = new String("hello");
}

long endTimel = System.currentTimeMillis();
System.out.println("通过 String 对象创建字符串"
+":" +(endTimel - startTimel) + "毫秒"
);

}

}

 

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

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

 

 

 


Java 实例 – 字符串优化

 

 

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


// StringOptimization.java 文件


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 startTime() = System.currentTimeMillis();

for(int i=0;i<50000;i++){
variables[i] = "hello";
}

long endTime() = System.currentTimeMillis();
System.out.println("Creation time"
+ " of String literals : "+ (endTime0 - startTime0)
+ " ms")

long startTimel = System.crrentTimeMillis();
for(int i=0;i<50000;i++){
variables[i] = new String("hello");
}

long endTimel = 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

 

转载于:https://www.cnblogs.com/Alanf/p/9648466.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值