StringBuilder单线程使用
/**
*
*/
package com.zhiyou.O;
import java.nio.file.attribute.AclEntry.Builder;
import java.util.Arrays;
/**
* @author Administrator
*
*/
public class StringTest1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// string创建的永远是一个不可变得字符串对象 字符串常量
// 结果有负数 0 正数 分别代表不一样的含义
String string = "laosun";
int resultValue = string.compareTo("maolao");
System.out.println(resultValue);
// byte[]输出的是字符串的ASCII
byte[] bytes = string.getBytes();
System.out.println(Arrays.toString(bytes));
String string2 = new String(bytes);
System.out.println(string2);
// 把string--》char[]
// 字符串byte[]和char[]之间的来回转换
char[] chars = string.toCharArray();
System.out.println(Arrays.toString(chars));
String string3 = new String(chars);
System.out.println(string3);
// 字符串,3个类string(不可变) stringBuilder和stringBuffer(可变字符串)
// stringbuilder非线程安全的(单线程使用效率更高)
// stringBuffer线程安全(多线程执行效率更高)
// 使用可变字符串类原因是,如果之前一直使用不可变的string
// 通过+拼接,会造成内存的负担,且一旦使用过多,会频繁的进行内存的分配和释放,降低效率
// 目前为止我们的程序考虑的是单线程stringbuilder
StringBuilder bulider1 = new StringBuilder();
// 刚开始初始化内容为空
System.out.println(bulider1.length());
// 追加
bulider1.append("laosun");
System.out.println(bulider1);
// 插入
bulider1.insert(1, "yes");
System.out.println(bulider1);
// 删除
bulider1.delete(1, 4);
System.out.println(bulider1);
// 反转reverse
bulider1.reverse();
System.out.println(bulider1);
//
String string4 = bulider1.toString();
System.out.println(string4);
// CRUD增删查改
// create read update delete
// buffer缓冲区
// stringBuffer和stringbuilder 同时继承用一个父类
// append insert replace delete
// 不可变 可变 字符串创建的长度是否可以追加
}
}