Java开发 之 StringBuffer和StringBuilder(1)
转 : http://www.jcourse.cn/read/234
2009-03-02 作者:
zhangtaolv
在我们日常开发中,经常会遇到对文本的操作,并且在一般的MIS系统中,文本操作尤为多,如用户名、文章内容、文章标题、合同内容等。在之前的教程中,我也给大家讲解了Java中最基本的字符串操作的类,String。在之前的教程中我也给大家讲了String是不可变的类,即在构造后其内容不能变化,因此对于内容频繁变动(如我们对文章进行编辑)来说String是不合适的。那么遇到这样的情况时,我们该如何处理呢?Java为我们提供了StringBuilder和StringBuffer。
首先讲讲它们的共同点吧!基本上我们在字符串经常发生改变的时候使用它们,然后使用它们来操作会比使用String类要快些。这两个类的区别是StringBuffer是线程安全的而StringBuilder是非线程安全的。
在大致讲解后,我们看看如何由已有的字符串对象来创建StringBuffer和将StringBuffer转换为String对象。
先给出StringBuffer类的构造方法的API,让我们看看有多少种方式来构造它。
构造方法摘要
StringBuffer()
构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer(CharSequence seq)
public java.lang.StringBuilder(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的 CharSequence相同的字符。
StringBuffer(int capacity)
构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(String str)
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
可以看出,我们可以直接new一个,也可以在new的时候给出参数。这里的参数可以是一个字符串,可以是一个容量值,也可以是一个CharSequence。我们首先看看用已有的字符串来构造StringBuffer。下面是一个例子:
Java代码
public class MainClass {
public static void main(String[] arg) {
StringBuffer aString = new StringBuffer("ABC
相关文档:
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
/**
* 文件列表。<br>
* 可以指定过滤条件。
*
* @author leo
*
*/
public class FileList {
/**
* @param args
*/
public static void main(String[] ......
大家好,这里有IBM的三个长期需求:均是需要2年以上相关工作经验,其中Java以及Testing需要英语可以交流,C/Unix不需要语言。
Java 大连
描述:Java programming, knowledge in J2SE, SWT/JFace, XML. Eclipse programming, knowledge in eclipse architecture. Clear understanding of plugin development. Hands-on exp ......
在java中实质只存在一种传递方式:即值传递。 而引用传递是对C/C++而言的。结论:
对于基本类型,在方法体内对方法参数进行重新赋值,并不会改变原有变量的值。
对于引用类型,在方法体内对方法参数进行重新赋予引用,并不会改变原有变量所持有的引用。
方法体内对参数进行运算,不影响原有变量的值。
......
这两天学校开始让我们这一大批高费生选择自己的专业方向,Focuser
我
经过好几个年头的思考,并且在我们亲爱c#老师热情的向
我们介绍.net的前景后,毅然坚定的选择了java这条自己认为前程似锦的道路。以下的这些网站是我平时经常访问的一些国外的英文java网站,今天特
地的发布给大家,希望我们能够真正的学习到jav ......
c# java 区别
C#与JAVA的相同之处:由于C#与JAVA都是基于C++发展起来的,因此二者之间具有很多相似之处,具体如下:
1、C#和JAVA语言的编译结果是独立于计算机和编程语言的,可执行文件可以在受管理的执行
环境中执行;
2、C#和JAVA语言都是采用了自动的垃圾回收机制;
3、C#和JAVA语言都取消了指针操作;
4、C ......