新手学JAVA(二)----String类与StringBuffer类的区别
来源:互联网 发布:wind数据客户端 免费版 编辑:程序博客网 时间:2024/06/05 08:26
在Java中有两种字符串的操作:String类和StringBuffer类(缓冲字符串处理类)。
下面先简单的说一下两者的区别。
String类和StringBuffer类都提供了相应的方法实现字符串的操作,但二者略有不同。
(1) String类
该类一旦产生一个字符串,其对象就不可变。String类的内容和长度是固定的。如果程序需要获得字符串的信息需要调用系统提供的各种字符串操作方法实现。虽然通过各种系统方法可以对字符串施加操作,但这并不改变对象实例本身,而是生成一个新的实例。系统为String类对象分配内存,是按照对象所包含的实际字符数分配的。
(2) StringBuffer类
查了查Buffer这个词,有缓冲的意思,这个类肯定有缓冲的功能。该类处理可变的字符串。如果要修改一个StringBuffer类的字符串,不需要再创建新的字符串对象,而是直接操作原来的串。该类的各种字符串操作方法与String类提供的方法不相同。系统为StringBuffer类分配内存时,除去当前字符所占的空间外,还提供另外的16个字符大小的缓冲区。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量。
下面来举一些具体的实例
字符串的连接
String类有两种方法
第一种(“+”)
public class str{ public static void main(String[] args){ String str1="加特效!"; String str2="Duang~~"; System.out.println(str1+" "+str2); } }
第二种(”concat”)
public class str{ public static void main(String[] args){ String str1="加特效!"; String str2="Duang~~"; System.out.println(str1.concat(str2)); } }
StringBuffer类的方法
public class str{ public static void main(String[] args){ //构建一个缓冲字符串的对象sb StringBuffer sb=new StringBuffer("加特效!"); //通过append方法,在这个对象后面添加一个新字符串 sb.append(" Duang~~"); System.out.println(sb); }}
最终输出的结果都为:加特效! Duang~~
通过上面的例子不难看出,String类在进行扩展的时候,需要实例两个对象,每个对象都会占用一定的内存,而StringBuffer类就不需要再实例化一个新的类,只需要调用一个扩展的方法就可以了。
还有一点StringBuffer类的内存容量是可扩展的。举个具体的例子:
public class str{ public static void main(String[] args){ //声明字符串对象sb StringBuffer sb=new StringBuffer(40); System.out.println(sb.capacity()); //输出字符串的容量capacity sb.ensureCapacity(100); //扩充容量 System.out.println(sb.capacity()); //输出字符串的容量capacity } }
capacity()方法代表了字符串对象在内存中,可以容纳字符串的个数。如果想要扩充内存容量,可以使用方法ensureCapacity()。
- 新手学JAVA(二)----String类与StringBuffer类的区别
- JAVA 的StringBuffer与String类的一些区别
- Java String类与StringBuffer类的区别
- 个人理解Java中String与StringBuffer类的区别
- String 与 StringBuffer类 的区别
- JAVA的StringBuffer类--------StringBuffer与String的区别及用法
- JAVA中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- java中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- JAVA中String与StringBuffer的区别
- iOS - UITextField 详细使用方法
- androd之绘制文本(FontMetrics)
- 第三周 项目1 三角形类(1)
- 黑马程序员——JAVA学习笔记(九)
- 【LeetCode】058.Length of Last Word
- 新手学JAVA(二)----String类与StringBuffer类的区别
- 自己写的Linux下的串口操作
- android项目性能优化之启动时间
- Java中String不可变性以及通过反射进行修改
- hdu-1242 Rescue
- 黑马程序员——JAVA学习笔记(十)
- Java多线程中join方法的理解
- ASP.NET 分页存储过程 及 调用
- C#web读取文件夹下面的所有文件夹和文件显示到TreeView中