


























在JAVA中String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。下面简单的说说二个类的差别:
1.String:
Java String对象是常量字符串。一旦被初始化和付值,它的值和所分配的内存就被固定了。如果硬要改变它的值,将会产生一个包含新值的新String对象,这就是String对象会消耗掉很多资源的原因。
public class Test{
public static void main(String[] args){
String i = "I ";
i += "am ";
i += "Adam";
}
}
系统会在每次添加字符串的时候都会创建一个新的对象。这样就消耗了太多的资源。并且String类在处理数据库字符的时候也显得过于繁琐。
2.StringBuffer:
面对String的各种问题,出现了StringBuffer类,StringBuffer类是String类的增强类。StringBuffer是字符串变量,它的对象是可以扩充和修改的。StringBuffer类被设计用与创建和操作动态字符串信息,为该对象分配的内存会自动扩展以容纳新增的文本。
public class Test{
public static void main(String[] args){
StringBuffer buf = new StringBuffer("I");
buf.append(" am ");
buf.append("Adam");
System.out.println(buf);
}
}
上面使用append方法将字符串添加到当前StringBuffer对象内容的结尾,并且仅只创建了一个对象。append还允许将各种类型的数据添加到对象的末尾。当然还有更多的方法来处理存储在StringBuffer对象内的字符串。例如:
setCharAt():将给定索引处的字符设置为 ch
insert():将字符串插入给定索引处。
replace(): 使用给定 String 中的字符替换此序列的子字符串中的字符。
delete():移除此序列的子字符串中的字符。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。