String和StringBuffer
一,String的特点
● String对象两种实例化方式
|-直接赋值:只开辟一块堆内存空间,并且自动入池。
|-构造赋值:开辟两块堆内存空间,手动使用intern()方法入池。
● 任何一个字符串都是String类的匿名对象。
● 字符窜一旦声明则不可改变,可以改变的只是String对象的引用。
二,StringBuffer类
● StringBuffer必须实例化才能使用,StringBuffer str = new StringBuffer();
● StringBuffer可以使用append(参数)方法连接,返回值类型也是StringBuffer对象;
● StringBuffer类可以修改内容String类不行。
三,String和StringBuffer继承比较
String | StringBuffer |
public final class String extends Object implements Serializable, Comparable<String>, CharSequence | public final class StringBuffer extends Object implements Serializable, CharSequence |
若在方法参数中有CharSequence参数,可以传入String或StringBuffer;
四,两种类型转换
将String转换成StringBuffer类:
● 使用StringBuffer类的构造方法;
● 使用StringBuffer对象的append()方法;
将StringBuffer转换成String:
●使用String的构造方法;
● 使用StringBuffer类对象的toString方法转换;
五,两种类型的比较
比较方法:public boolean String(StringBuffer sb);
六,StringBuffer常用方法
● 字符串反转: public StringBuffer reverse();
● 在指定位置增加数据(原有数据前面):public StringBuffer insert(int offset , 数据类型 变量);
● 删除部分内容:public StringBuffer delete(int start , int end);
七,StringBuilder
结构与StringBuffer类似,但它提供的方法线程不同步,所以他是线程不安全的。
总结:String , StringBuffer , StringBuilder的区别:
● String类对象内容一旦声明则不可改变,StringBuffer和StringBuilder类内容可以动态的改变;
● StringBuffer类的方法使用了关键字synchronized,所以是线程安全的,StringBuilder没有使用,线程不安全;