Java中的StringBuilder和StringBuffer用法与区别

以你之姓@ 2024-04-03 10:14 117阅读 0赞

Java中的StringBuilder和StringBuffer用法与区别

  1. StringBuilderStringBuffer的区别:
  2. StringBuilder:非线程安全的,并发处理的,性能稍快
  3. StringBuffer:线程安全的,同步处理的,性能稍慢

1- String

由于String是不变对象,每次修改内容都会创建新的对象,因此String不适合频繁修改操作,为了解决这个问题,java提供了StringBuilder类。

2- StringBuilder

StringBuilder是专门用于修改字符串的一个类,内部维护一个可变的char数组,所做操作都是在这个数组之上进行的,修改速度、性能非常优秀,并且提供了修改字符串的常见方式:增、删、改、插

举例如下

  1. public class StringStringBuilderDemo {
  2. public static void main(String[] args) {
  3. StringBuilder s = new StringBuilder("a");
  4. for(int i=0;i<10000000;i++) { //1000万次
  5. s.append(i);
  6. }
  7. System.out.println("执行完毕");
  8. /*
  9. // String不适合频繁修改内容(效率低)
  10. String s = "a";
  11. for(int i=0;i<10000000;i++){ //1000万次
  12. s = s+i; // 每次修改都会在内存中分配新的对象
  13. }
  14. System.out.println("执行完毕");
  15. */
  16. }
  17. }
  18. //StringBuilder的演示
  19. public class StringBuilderDemo {
  20. public static void main(String[] args) {
  21. String str = "JavaTest";
  22. StringBuilder builder = new StringBuilder(str);
  23. builder.append(",JavaTest2");
  24. System.out.println(builder);
  25. // replace():替换部分内容(含头不含尾)
  26. // 将下标为9到15的内容替换为---就是为了改变世界
  27. builder.replace(0,3,"JAVA");
  28. System.out.println(builder);
  29. // delete():删除部分内容(含头不含尾)
  30. builder.delete(0,3); // 删除下标为0到7的
  31. System.out.println(builder);
  32. // insert():插入内容
  33. builder.insert(0,"Java666"); // 在下标为0的位置插入活着
  34. System.out.println(builder);
  35. }
  36. }

3 - StringBuffer

StringBuffer和StringBuilder的使用基本一致

发表评论

表情:
评论列表 (有 0 条评论,117人围观)

还没有评论,来说两句吧...

相关阅读