image.pngimage.png
常用方法:
image.png

StringBulider性能好的原因:(s3指向的是004 ,前面的对象都会被回收)

普通字符串拼接: 每+一次产生一个对象
image.png
使用StringBulider方法:只会产生一个对象,在一个对象里面拼接
image.png

代码块实例:

  1. package com.itheima.d11_api_stringbulider;
  2. /**
  3. * 目标:学会使用StringBulider操作字符串,最终还需要知道它性能好的原因
  4. */
  5. public class StringBuilderDemo1 {
  6. public static void main(String[] args) {
  7. StringBuilder sb = new StringBuilder(); // 默认是 ""
  8. sb.append("a"); // 字符串拼接
  9. sb.append("b");
  10. sb.append("c");
  11. System.out.println(sb); // 输出 abc
  12. StringBuilder sb1 = new StringBuilder();
  13. // 支持链式编程
  14. sb1.append("1").append("2").append("3");// 源码中有return this; 所以每次添加完对象会返回给该对象继续拼接
  15. System.out.println(sb1);
  16. // 反转 reverse方法
  17. sb1.reverse().append("110"); // sb1 = 123; 反转后321 然后返回给对象继续添加110 结果喂321110
  18. System.out.println(sb1);
  19. System.out.println(sb1.length()); // 输出字符串的长度
  20. // 注意:StringBuilder只是拼接字符串的手段,效率好
  21. // 最终目的还是要恢复成String类型
  22. StringBuilder sb2 = new StringBuilder();
  23. sb2.append("123").append("456");
  24. // check(sb2); // 直接传入实参会报错,说明sb2不是String类型
  25. // 恢复成String类型
  26. String rs = sb2.toString(); // 已经默认重写了toString返回的就是字符串内容
  27. check(rs); // 这样就能传入字符串实参了
  28. }
  29. public static void check(String data){
  30. System.out.println(data);
  31. }
  32. }