Java中的StringBuilder和StringBuffer用法与区别
Java中的StringBuilder和StringBuffer用法与区别
StringBuilder和StringBuffer的区别:
StringBuilder:非线程安全的,并发处理的,性能稍快
StringBuffer:线程安全的,同步处理的,性能稍慢
1- String
由于String是不变对象,每次修改内容都会创建新的对象,因此String不适合频繁修改操作,为了解决这个问题,java提供了StringBuilder类。
2- StringBuilder
StringBuilder是专门用于修改字符串的一个类,内部维护一个可变的char数组,所做操作都是在这个数组之上进行的,修改速度、性能非常优秀,并且提供了修改字符串的常见方式:增、删、改、插
举例如下
public class StringStringBuilderDemo {
public static void main(String[] args) {
StringBuilder s = new StringBuilder("a");
for(int i=0;i<10000000;i++) { //1000万次
s.append(i);
}
System.out.println("执行完毕");
/*
// String不适合频繁修改内容(效率低)
String s = "a";
for(int i=0;i<10000000;i++){ //1000万次
s = s+i; // 每次修改都会在内存中分配新的对象
}
System.out.println("执行完毕");
*/
}
}
//StringBuilder的演示
public class StringBuilderDemo {
public static void main(String[] args) {
String str = "JavaTest";
StringBuilder builder = new StringBuilder(str);
builder.append(",JavaTest2");
System.out.println(builder);
// replace():替换部分内容(含头不含尾)
// 将下标为9到15的内容替换为---就是为了改变世界
builder.replace(0,3,"JAVA");
System.out.println(builder);
// delete():删除部分内容(含头不含尾)
builder.delete(0,3); // 删除下标为0到7的
System.out.println(builder);
// insert():插入内容
builder.insert(0,"Java666"); // 在下标为0的位置插入活着
System.out.println(builder);
}
}
3 - StringBuffer
StringBuffer和StringBuilder的使用基本一致
还没有评论,来说两句吧...