Java 核心API

StringBuilder

String 类型的连接性能不好,Java提供了StringBuilder解决字符串连接性能问题。

简单理解 StringBuilder性能好!(重点!)

点击查看代码
String s1 = "ABC";
String s2 = "def";
String s3 = s1 + s2;

字符串连接性能测试:

点击查看代码

```java
String str = "";
long t1 = System.currentTimeMillis();
for(int i=0; i<50000; i++){
str = str + "A";
}
long t2 = System.currentTimeMillis();
System.out.pritnln(t2 - t1);
```

StringBuilder 用于提升String字符串的连接性

  • StringBuilder称为可变字符串
  • StringBuilder内部也是字符数组, 其API可以直接修改其内部数组的内容
  • 当数组容量不足时候, 会自动扩容
  • 运算期间会尽力减少创建数组的数量。
点击查看代码
package string;

public class StringBuilderDemo03 {
public static void main(String[] args) {
/*
* 测试StringBuilder的连接性能
*/
StringBuilder buf = new StringBuilder();
long t1 = System.currentTimeMillis();
for (int i =0; i<50000; i++){
buf.append("A");
}
long t2 = System.currentTimeMillis();
System.out.println(t2-t1);
}
}

StringBuilder API

点击查看代码

```java
buf-> char[]{A, C, B, 0, 0, 0, 0, 0, 0, 0, 0...0}
// 0 1 2 3 4 5
StringBuilder buf = new StringBuilder();
buf.append("A")
.append("A")
.append("A")
.append("B")
.insert(1,"C")
.delete(2,4);
Stirng str = buf.toString();
```

  • append() 追加, 在StringBuilder的后面添加字符,当容量满了,会自动扩容, 扩容规则 1倍+2;
  • insert(位置,字符) 插入字符;
  • delete(开始位置, 结束位置): 删除一定范围的字符,包括开始,不包括结束
  • replace():替换
  • reverse():翻转
  • StringBuilder的API返回的大多是当前对象,可以连续使用.调用方法。
  • toString() 方法可以讲StringBuilder转换为String

最新文章

  1. qt5中文代码编码编译问题
  2. 生产环境使用 pt-table-checksum 检查MySQL数据一致性
  3. jQuery fullPage.js 全屏滚动
  4. iOS-- pod常用命令
  5. python 进程间共享数据 (一)
  6. 面向对象编程(OOP)基础之UML基础
  7. Angular学习(7)- 模板2
  8. Verilog杂谈
  9. Swift 2.0学习
  10. [Leetcode][019] Remove Nth Node From End of List (Java)
  11. 调用Windows属性窗口(居然是通过注册表来调用的)
  12. 让你提前认识软件开发(23):怎样在C语言中运行shell命令?
  13. chmod u+s(转)
  14. html5shiv.min.js 和 respond.min.js 作用(bootstrap做IE低版本兼容时需要用到这两个插件)
  15. 四、VueJs 填坑日记之搭建Axios接口请求工具
  16. Oracle的nvl函数和nvl2函数
  17. 纯 Html 5的 简单 TreeView 保存下思路以后有机会再完善。
  18. 一张图教你弄清楚linux虚拟机的静态IP设置原理 VMnet8
  19. day22(过滤器Filter)
  20. STM32F4 Alternate function mapping

热门文章

  1. animation—延迟和持续时间
  2. NLP教程(7) - 问答系统
  3. 解决 youtube 片尾内容被遮挡
  4. 896.Montonic Array - LeetCode
  5. 150. Evaluate Reverse Polish Notation - LeetCode
  6. Python数据分析--Numpy常用函数介绍(2)
  7. Ajax——Get请求
  8. poj3784(对顶堆)
  9. 内网穿透frp教程 windows远程桌面连接
  10. 【Java面试】请说一下Mysql索引的优点和缺点?