在Java 中,除了可以使用String 类来存储字符串,还可以使用StringBuffer 类或者StringBuffer类来存储字符串,那么他们之间有什么区别呢?
String 类具有不可变性。如
String str = "hello" ;
Sysout.out.println(str + "world");
sysout.out.println(str);
运行结果:
helloworld
hello
从运行结果我们可以看到,程序运行时会额外创建一个对象,保存helloworld 。当频繁操作字符串时,就会产生很多临时变量。使用StringBuffer 或StringBuilder 就可以避免这个问题,至于StringBuilder和StringBUffer ,他们基本相似,不同之处,StringBuffer 是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。因此一般情况下,如果创建一个内同可变的字符串对象,应优先考虑使用StringBUilder类
那么如何定义StringBuilder类的对象呢?我们来看下面的代码:
StringBuilder str1 = new StringBuilder();//创建一个空StringBuilder对象
StringBuilder str2 = new StringBuilder("zs");//创建以个字符串“zs”
System.out.println(str2);
运行结果:zs
Java中的StringBuilder类的常用方法,java StringBuilder类提供了很多方法来操作字符串:
例如:创建了StringBuilder对象,用来存储字符串,并对其做了追加和插入的操作,这些操作修改了str 对象的值,而没有创建新的对象,这就是StringBuilder 和 String 最大的区别