Stringbuffer是線程安全的
每個字符串緩沖區(qū)都有一定的容量耻涛。只要字符串緩沖區(qū)所包含的字符序列的長度沒有超出此容量凄吏,就無需分配新的內(nèi)部緩沖區(qū)數(shù)組。如果內(nèi)部緩沖區(qū)溢出,則此容量自動增大寥闪。從
JDK 5 開始,為該類補充了一個單個線程使用的等價類氛琢,即 StringBuilder
肄方。與該類相比,通常應(yīng)該優(yōu)先使用
StringBuilder
類砸狞,因為它支持所有相同的操作捻勉,但由于它不執(zhí)行同步,所以##速度更快刀森。踱启、、
···
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) {
// 默認構(gòu)造方法有一個初始化容量
StringBuffer sBuffer = new StringBuffer();
//向緩沖區(qū)寫入字符串
sBuffer.append("java web");
//向緩沖區(qū)寫入另一個緩沖區(qū)
sBuffer.append(new StringBuffer("加入另一個緩沖區(qū)"));
//反轉(zhuǎn)字符串
sBuffer.reverse();
System.out.println(sBuffer.toString());
sBuffer.reverse();
//取得字符串長度
sBuffer.length();
//設(shè)置字符串緩沖區(qū)里面的長度
//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中的替換還是有 區(qū)別的 這里的替換是全部替換
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");
//第一個參數(shù)指代插入的位置
System.out.println(buffer.insert(0, "s"));
//線程安全類
StringBuilder builder = new StringBuilder("java");
char[] str=new char[4];
//參數(shù)1 子字符數(shù)組開始位置 后面是緩沖區(qū)控制的位置 分別是 開始 取幾個字符串
System.out.println(builder.insert(0, str, 1,0));
//初始化容量
builder.ensureCapacity(100);
//刪除字符串
builder.deleteCharAt(2);
System.out.println(builder);
}
}
···