JAVA平台提供了两个类,String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据,这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串可以进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffer来动态构造字符数据
String类:
什么是 String?
String就是C++、java、VB等编程语言中的字符串,用双引号引起来的几个字符.如"Abc",“一天”.
Java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同
Java将字符串作为 String类型对象来处理。将字符串作为内置的对象处理允许 Java 提供十分丰富的功能特性以方便处理字符串
String 类是 Java 类库中最常用的类,其中最明显的原因是字符串在编程语言中是很重要的部分
String类
特 点:
在Java中有关字符串的最重要一点是,你创建的每一个字符串实际上都是 String 类型的一个对象,即使是字符串常量实际上也是 String 对象
字符串的另一个特点是,String 类型的对象是不可改变的;一旦创建了一个字符串对象,它的内容是不能被改变的
如果你需要改变一个字符串,你可以创建一个新的字符串,其中包含修改后的字符串即可
Java 定义了一个和 String 类同等的类叫 StringBuffer,它允许字符串改变
StringBuffer类概述:
StringBuffer 是提供了大量的字符串功能的String类的对等类。正如你所知,String表示了定长,不可变的字符序列。
相反,StringBuffer 表示了可变长的和可写的字符序列。StringBuffer可有插入其中或追加其后的字符或子字符串。StringBuffer 可以针对这些添加自动地增加空间,同时它通常还有比实际需要更多的预留字符,从而允许增加空间
StringBuffer类
构造方法:
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
默认构造方法(无参数)预留了 16 个字符的空间。该空间不需再分配。第二种形式接收一个整数参数,清楚地设置缓冲区的大小。第三种形式接收一个字符串参数,设置 StringBuffer对象的初始内容,同时不进行再分配地多预留了 16 个字符的空间
String类和StringBuffer类对比:
String类和StringBuffer这两个类在外理字符时有各自的特点和适用场 合,具体对比如下:
1.String:字符串常量
String是不可变的对象,在每次String类型进行改变时其实都等同于生成一个新的String对象,然后指向新的String对象,所以经常改变内容最好不要用String类型,因为每次生成对象都会对系统性能产生影响.
2.StringBuffer:字符串变量
StringBuffer是可变的字符串,在每次对StringBuffer对象进行改变时,会对StringBuffer对象本身进行操作,而不是生成新的对象,再改变对象引用,所以,在字符串对象经常改变的情况下推荐使用StringBuffer类
字符串连接操作中,StringBuffer类的执行效率要比String类高,例如:
String str=new String(“welcome to”);
str+=“here”;
以上这两句代码是使用String类型来操作字符串,但其处理步骤实际上是通过建产一个StringBuffer对象,让它调用append()方法,最后再转化成String,这样的话,String的连接操作比StringBuffer多出了一些附加操作,当然效率要低.并且由于String对象的水可变性也会影响性能.