重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
创新互联公司专注于吉安网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供吉安营销型网站建设,吉安网站制作、吉安网页设计、吉安网站官网定制、小程序制作服务,打造吉安网络公司原创品牌,更为您提供吉安网站排名全网营销落地服务。本篇文章给大家分享的是有关利用Java 如何实现字符串连接,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Java中使用+作为字符串连接符,它是把多个字符串合并成一个字符串的方便途径。对于单独一行的输出、或者较小的大小固定对象,使用连接符方便且合适。但是对于大规模的场景,字符串连接符变得有些不合时宜。
以连接N个字符串为列,重复的使用字符串连接符需要N的平方的时间量,最主要的原因是String类是不可变类导致的,即当连接两个字符串时,它们的内容都要存在一次拷贝。每一次连接,原有的两个字符串对象都不变,连接后的结果是一个新生成的对象。这种方式,不仅时间需求很大,而且对内存的要求也非常高。
如果拼接的字符串很多,使用字符串连接符的计算时间和对性能的消耗变得难以估算。为了使性能在接受范围内,可以使用StringBuilder替代String,来连接字符串。
以下是两种方式的测试代码:
public static void main(String[] args) {
long start1 = System.currentTimeMillis();
String result1 ="";
for(int i = 0 ; i < 50000;i++){
result1 += String.valueOf(i);
}
long end1 = System.currentTimeMillis();
System.out.println("String Connect Time:"+(end1-start1)+"ms");
long start2 = System.currentTimeMillis();
StringBuilder result2 = new StringBuilder();
for(int i = 0 ; i < 50000;i++){
result2.append(i);
}
long end2 = System.currentTimeMillis();
System.out.println("StringBulider Connect Time:"+(end2-start2)+"ms");
}