Stringbuffer是线程安全的
每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从
JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder
。与该类相比,通常应该优先使用
StringBuilder
类,因为它支持所有相同的操作,但由于它不执行同步,所以##速度更快。、、
···
package core.java.lang;
/**
-
@author DGW
-
@date 2017 2017年4月14日 下午7:37:17
-
@filename StringBuffer.java
*/
public class StringBufferClass {public static void main(String[] args) {
// 默认构造方法有一个初始化容量
StringBuffer sBuffer = new StringBuffer();
//向缓冲区写入字符串
sBuffer.append("java web");
//向缓冲区写入另一个缓冲区
sBuffer.append(new StringBuffer("加入另一个缓冲区"));
//反转字符串
sBuffer.reverse();
System.out.println(sBuffer.toString());
sBuffer.reverse();
//取得字符串长度
sBuffer.length();
//设置字符串缓冲区里面的长度
//sBuffer.setLength(2);
//得到初始化字符串初始化容量 16
int capacity = new StringBuffer().capacity();
System.out.println(capacity);
System.out.println(sBuffer.charAt(0));
System.out.println(sBuffer.codePointAt(0));
//stringbuffer重写了,string类中一些方法
System.out.println(sBuffer.indexOf("j"));
System.out.println(sBuffer.lastIndexOf("j"));
System.out.println(sBuffer.substring(1));
//截断字符串 返回一个新的字符串序列
System.out.println(new String("java web").substring(5));
//这里的替换与 string中的替换还是有 区别的 这里的替换是全部替换
System.out.println(sBuffer);
sBuffer.replace(0, sBuffer.length(), "s");
System.out.println(sBuffer.toString());
System.out.println(new String("java").replace("j", "s"));
//插入操作
StringBuffer buffer = new StringBuffer("java");
//第一个参数指代插入的位置
System.out.println(buffer.insert(0, "s"));
//线程安全类
StringBuilder builder = new StringBuilder("java");
char[] str=new char[4];
//参数1 子字符数组开始位置 后面是缓冲区控制的位置 分别是 开始 取几个字符串
System.out.println(builder.insert(0, str, 1,0));
//初始化容量
builder.ensureCapacity(100);
//删除字符串
builder.deleteCharAt(2);
System.out.println(builder);
}
}
···
网友评论