一 String 是 常量 定义并赋值后不可再改变。
StringBuffer 是 变量 (缓存)可以改变。StringBuffer
类和String
类一样,也用来代表字符串,只是由于StringBuffer
的内部实现方式和String
不同,StringBuffer
在进行字符串处理时,不生成新的对象,所以在内存使用上,StringBuffer
类要优于String
类。
例:String
public class Test5{ public static void main(String[] args) { String str = "this is a String"; str.replace("s","k"); System.out.println(str); System.out.println(str.replace("s","k")); } }
输出结果:
this is a String
thik ik a String
可以看到str 其实并没有因为replace方法而改变。
例: StringBuffer
public class Test5{ public static void main(String[] args) { StringBuffer str = new StringBuffer("this is a StringBuffer"); str.delete(0,4); System.out.println(str); System.out.println(str.delete(0,4)); } }
输出结果:
is a StringBuffer
a StringBuffer
可以看到str 俩次都发生了变化。
二 初始化方法:
String:
public class Test5{ public static void main(String[] args) { String str1 = new String("构造方法"); String str2 = "赋值法"; System.out.println(str1); System.out.println(str2); } }
String 可通过构造方法或是赋值法初始化。
StringBuffer:
public class Test5{ public static void main(String[] args) { StringBuffer str1 = new StringBuffer("构造方法"); System.out.println(str1); } }
StringBuffer只能是构造方法 不可以 赋值法
三
StringBuffer
类中存在很多和String
类一样的方法,这些方法在功能上是完全一样的。
StringBuffer
类中也有一些独特的方法,用于帮助我们更方便的实现某些功能。