StringBuffer
StringBuffer类的概述
A : StringBuffer类概述
- 线程安全的可变字符序(同步的) (速度慢些)
- StringBuilder 是线程不安全的不同步的 与 StringBuffer 支持所有相同的操作(StringBuilder速度快些)
B : String 和 StringBuffer的区别- String 是一个不可变的字符序列
- StringBuffer 是一个可变字符序列
StringBuffer构造方法
A : StringBuffer构造方法
- public StringBuffer() : 无参构造
- public StringBuffer(int capacity) : 指定容量的字符串缓冲区对象
- public StringBuffer(String str) : 指定字符串内容的字符串缓冲区对象
一般都用第一第三种 只要满了自动扩展
StringBuffer 的append 方法
public StringBuffer append(String str);
可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
当调用append方法时,不会再创建一个新的对象,而是在原字符串缓冲区直接进行添加操作,不用记录返回值
StringBuffer 的insert方法
public StringBuffer insert(int offset , String str);
在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
StringBuffer 的Delete方法
public StringBuffer deleteCharAt(int index);
删除指定位置字符,并返回本身
public StringBuffer delete(int start , int end);
删除从start 开始到end 结束的内容,并返回本身
包含头 不包含尾 左闭右开
StringBuffer 的replace方法
public StringBuffer replace (int start,int end , String str);
从start开始 到end用str替换 返回字符串缓冲区本身
StringBuffer 的 reverse方法
public StringBuffer reverse();
字符串反转 , 返回本身
StringBuffer 的截取功能
public String substring(int start);
从指定位置截取到末尾
public String substring(int start , int end);
从指定位置开始到结束位置 包含头不包含尾 左闭右开
注意 返回值不再是StringBuffer本身 而是String 类型 StringBuffer本身不会被改变
StringBuffer 和 String 的相互转换
String 转换为 StringBuffer
- 通过构造方法
- 通过append()方法
StringBuffer 转换为 String
- 通过构造方法
- 通过toString方法
- 通过subString(0,length)方法
将数组转换为字符串
把数组转换成字符串如图所示 用StringBuffer来做更好 用String 和 + 来做 在堆内存中会产生 arr.length-1个String 对象垃圾
StringBuffer 和 StringBuilder 的区别
StringBuffer 和StringBuilder 中的方法是一模一样的
面试题 区别
StringBuffer 和 StringBuilder 的区别
- StringBuffer是jdk1.0版本的,是线程安全的,效率低
- StringBuilder是jdk1.5版本的,是线程不安全的,效率高
区别就在于安不安全 同不同步
String 和 StringBuffer , StringBuilder 的区别
- String 是一个不可变字符序列
- StringBuffer 和 StringBuilder 都是可变的
String 和 StringBuffer作为参数传递
-
String 类虽然是引用类型,但是他作为参数传递 的时候和基本数据类型是一样的 因为String对象一旦被初始化 其值不能改变
-
StringBuffer 和引用数据类型一样 在方法中变化后 返回调用处也会保持变化
Java 中些swap 方法
void swap(int [ ] arr,int i , int j);
arr相当于指针的作用
Array类的方法使用(这是一个工具类 里面方法都是静态的 并且私有化了构造)
- public static String toString (int [] arr)
数组转化成字符串 - public static void sort(int[] arr)
数组排序 - public static binarySearch(int[] arr , int value)
数组查找(用二分查找实现 使用前必须有序)
如果包含在数组中,则返回搜索键的索引;否则返回(-(插入点)-1).插入点被定义为将键插入数组的那一点(第一个大于此键元素的点)