Java的StringBuilder类
来源:互联网 发布:淘宝stussy正品店铺 编辑:程序博客网 时间:2024/05/16 05:15
如果程序对附加字符串的需求很频繁,不建议使用+来进行字符串的串联。可以考虑使用java.lang.StringBuilder类,使用这个类所产生的对象默认会有16个字符的长度,您也可以自行指定初始长度。如果附加的字符超出可容纳的长度,则StringBuilder对象会自动增加长度以容纳被附加的字符。如果有频繁作字符串附加的需求,使用StringBuilder类能使效率大大提高。如下代码:
- public class AppendStringTest
- {
- 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("执行时间:"+(endTime-beginTime));
- StringBuilder sb = new StringBuilder("");
- beginTime = System.currentTimeMillis();
- for(int i=0;i<10000;i++)
- sb.append(String.valueOf(i));
- endTime = System.currentTimeMillis();
- System.out.println("执行时间:"+(endTime-beginTime));
- }
- }
此段代码输出:
执行时间:3188
执行时间:15
StringBuilder是j2se1.5.0才新增的类,在此之前的版本若有相同的需求,则使用java.util.StringBuffer。事实上StringBuilder被设计为与StringBuffer具有相同的操作接口。在单机非线程(MultiThread)的情况下使用StringBuilder会有较好的效率,因为StringBuilder没有处理同步的问题。StringBuffer则会处理同步问题,如果StringBuilder会有多线程下被操作,则要改用StringBuffer,让对象自行管理同步问题。
另外,String 与StringBuffer的区别
String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独
字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可
以把字符串设为共享的。
StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用
StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得
多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大
的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使
用StringBuffer类就避免了这个问题.
- Java的StringBuilder类
- Java:StringBuilder类的使用
- js封装的类似java StringBuilder类
- java StringBuilder类的常用方法
- java 中StringBuilder类的常用方法
- Java StringBuilder 的使用
- Java StringBuilder 的使用
- java StringBuilder的用法
- java中StringBuilder类
- Java优化-StringBuilder类
- Java.lang.StringBuilder类
- Java 中的 StringBuilder 类
- Java StringBuilder类
- java-StringBuilder类
- Java常用类:StringBuilder
- Java 中的 StringBuilder 类
- java中的StringBuilder类
- JAVA之StringBuilder类
- oem Oracle Enterprise Manager 设置
- J2ME体系结构――Configuration和Profiles(上)
- SYSMAN already exists
- Serializable java序列化介绍
- 创建资料档案库时有错误,删除同义词SYNONYM
- Java的StringBuilder类
- haha
- 硬件工程师基础知识
- 如何在plus/sql中执行*.sql文件?
- VB与VBA对于DIM的区别
- asp+ajax 无刷新新闻列表,点击分页不局部刷新(代码,有下载)
- 想要升职,别做这六大类员工
- 调用另一个Activity
- 可怜天下父母心.......