一个String对象的长度是固定 的,不能更改其内容。当你用“+”连接两个字符串从而创建新的字符串时,你其实创建了一个新的String对象。如果频繁的这样子操作,就会产生大量的垃圾并且效率低。
这种情况下可以考虑使用StringBuilder。
/*
* 作者:阳光的味道
* 功能:示范String类的对象的intern()方法
* 日期:2010/11/07
* */
public class AppedStringTest {
public static void main(String[] args) {
String text = "";
long beginTime = System.currentTimeMillis();
for(int i = 0 ; i < 10000 ; i ++){
text = text + i ;
}
long endTime = System.currentTimeMillis();
System.out.println("String的执行时间:" + (endTime - beginTime));
StringBuilder builder = new StringBuilder();
beginTime = System.currentTimeMillis();
for(int i = 0 ; i < 10000 ; i ++){
builder.append(i);
}
endTime = System.currentTimeMillis();
System.out.println("StringBuilder执行时间:" + (endTime - beginTime));
}
}
/*
* out:
* String的执行时间:420
StringBuilder执行时间:3*/
StringBuilder是jdk5.0中新增的类,在之前使用的是java.lang.String.Buffer。事实上,StingBuilder被设计为与StringBuffer具有相同操作的接口。在单机非多线程的情况下使用StringBuilder会有较高的效率,这是因为StringBuilder没有处理同步(Synchronized)问题。而StringBuffer则会处理同步问题,其在多线程中应用较多。
分享到:
相关推荐
StringBuilder拓展方法示例源码 项目描述 源码演示了手动给StringBuilder添加拓展方法IndexOf string的一些方法StringBuilder没有,我们可以灵活的给他 拓展一下。把自己需要的方法添加上。以后在项目里直接引用一下...
ajax string各个属性方法理论和实例以及StringBuilder各个属性方法理论和实例
通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的新实例,正如以下示例中所阐释的那样。 设置容量和长度 虽然 StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您...
通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的新实例,正如以下示例中所阐释的那样。 [C#] StringBuilder MyStringBuilder = new StringBuilder("Hello World!"); 设置容量和长度 虽然 ...
二、StringBuffer的示例 // 创建一个空的StringBuffer对象 StringBuffer sb = new StringBuffer(); // 向StringBuffer对象中添加字符串 sb.append("Hello"); sb.append(" "); sb.append("World"); // 将...
day13-String和StringBuilder 1.String类 1.1字符串的比较【理解】 1.1.1==号的作用 比较基本数据类型:比较的是具体的值 比较引用数据类型:比较的是对象地址值 1.1.2equals方法的作用 方法介绍 示例代码 ...
测试StringBuilder的运行效率,大家参考使用吧
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建...通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的新实例,正如以下示例中所阐释的那样。 StringBuilder
StringBuilders 概述 建立String的简单类型。... 为了进行比较,上面使用IOBuffer的示例为 io = IOBuffer () write (io, " First string " ) write (io, " Second String " ) s = String ( take! (io)) close (io)
主要介绍了java中stringBuilder的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
个人喜欢string.Format (or StringBuilder.AppendFormat) 非常多。 我经常使用它,认为它是灵活的,如果没 有太多的参数在你的格式字符串。但如果它不是这样的事情看起来不那么明亮。再多参数情况下,往往会容易混 ...
insert语句太长用StringBuilder优化一下,下面是示例代码,需要的朋友可以研究研究
主要介绍了Java StringBuilder类原理及常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了浅谈StringBuilder内存碎片对性能的影响,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了java String、StringBuilder和StringBuffer的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了Java stringBuilder的使用方法及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了浅谈Java StringBuilder为什么线程不安全,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
JAVA学习笔记第十三天——正则表达式、StringBuilder、包装类型、Collection常用API,包含了这些知识点的使用,示例代码。
主要给大家介绍了关于StringBuilder为什么线程不安全的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用StringBuilder线程具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧