StringBuffer和String的区别:
String是一个不可变的字符序列
StringBuffer是一个可变的字符序列
StringBuffer的构造方法:
public StringBuffer():无参构造方法
public StringBuffer(int capacity):指定容量的字符串缓冲区对象
public StringBuffer(String str):指定字符串内容的字符串缓冲区对象
public int capacity():返回当前容量。 理论值,容器的初始容量
public int length():返回长度(字符数)。 实际值,容器中的字符个数
StringBuffer的添加功能
public StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
可以连续调用 例如sb.append("a").append("b")
StringBuffer是字符缓冲区,当new的适合是在堆内存创建了一个对象,底层是一个长度为16的字符数组。当调用添加的方法时,不会再重新创建对象,
会不断向原缓冲区添加字符
public StringBuffer insert(int offset,String str): 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
StringBuffer的删除功能
public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身
public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身(删除的时候是包含头,不包含尾,比如填(0,2)就是删除前两个字符)
StringBuffer的替换功能
public StringBuffer replace(int start,int end,String str): 从start开始到end用str替换
StringBuffer的反转功能public StringBuffer reverse():字符串反转
StringBuffer的反转功能
public StringBuffer reverse():字符串反转
public String substring(int start):从指定位置截取到末尾,返回的是String类型
public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置。返回的是String类型
注意事项:返回值类型不再是StringBuffer本身
String 和StringBuffer相互转化
String -- StringBuffer
a:通过构造方法 比如构造方法public StringBuffer(String str)
b:通过append()方法
StringBuffer -- String
a:通过String类构造方法(String(StringBuffer sb))
b:通过toString()方法
c:通过subString(0,length);
用StringBuffer把数组转成字符串比用String好,这样不会在常量池产生垃圾(根据两个类的性质)
StringBuffer和StringBuilder的区别
StringBuilder的概述:通过查看API了解一下StringBuilder类
面试题常见有:
StringBuffer和StringBuilder的区别
答:StringBuffer是jdk1.0版本的,是线程安全的,效率低;StringBuilder是jdk1.5版本的,是线程不安全的,效率高
String和StringBuffer,StringBuilder的区别
String是一个不可变的字符序列
StringBuffer,StringBuilder是可变的字符序列
形式参数问题
String作为参数传递
StringBuffer作为参数传递
B:案例演示:String和StringBuffer分别作为参数传递问题
冒泡排序实例:
冒泡排序:轻的上浮,沉的下降,两个相邻位置比较,如果前面的元素比后面的元素大就换位置
选择排序:用一个索引位置上的元素,依次与其他索引位置上的元素比较,小的在前面,大的在后面
如果某个方法,只针对本类使用,不想让其他类使用就可以定义成私有的
二分查找(折半查找)
前提:数组元素有序