ApiDay001 __02 Java_StringBuilder
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
ApiDay001 __02 Java_StringBuilder的更多相关文章
- MyBatis3系列__02接口式编程
hello world MyBatis3支持面向接口编程: 具体做法如下,将helloWorld中的EmployeeMapper.xml文件进行更改: <?xml version="1 ...
- DesignPattern系列__02接口隔离原则
介绍 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小接口上. Demo引入 先来看一张图: interface MyInterface { void operation1(); ...
- Java_Stringbuilder和StringBuffer
StringBuilder和StringBuffer非常类似, 均代表可变的字符串序列. 这两个类都是抽线类AbstractStringBuilder的子类, 方法几乎一样 /******String ...
随机推荐
- 《Java编程思想》读书笔记(二)
三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第一章到第十章的内容,这一次记录的是第 ...
- 操作系统实现-loader
博客网址:www.shicoder.top 微信:18223081347 欢迎加群聊天 :452380935 大家好呀,终于我们到了操作系统的loader部分了,loader也是操作系统中最重要的一个 ...
- scrapy架构与目录介绍、scrapy解析数据、配置相关、全站爬取cnblogs数据、存储数据、爬虫中间件、加代理、加header、集成selenium
今日内容概要 scrapy架构和目录介绍 scrapy解析数据 setting中相关配置 全站爬取cnblgos文章 存储数据 爬虫中间件和下载中间件 加代理,加header,集成selenium 内 ...
- 好客租房7-React脚手架的使用
3.3在脚手架中使用React //第一步导入react import React from "React" import ReactDOM from "react-do ...
- 152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv
152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv 附件下载地址:https://jiaopengzi.com/2602.html 一.背景 在我们使用 ...
- 使用多线程提高REST服务器性能
异步处理REST服务 1.使用Runnable异步处理Rest服务 释放主线程,启用副线程进行处理,副线程处理完成后直接返回请求 主要代码 import java.util.concurrent.Ca ...
- 素性测试+PollardRho
素数判定 暴力 本质上是检查其是否能够不用其本身进行质因数分解. 直接枚举从区间 \([2,n)\) 的数看其是否整除 \(n\) 即可.但是其实发现我们只要枚举到 \(\sqrt n\) 即可,复杂 ...
- kruskar重构树
只略略讲一点基本方式与思想了 构建 并查集,边按从小(大)到大(小)加入,建新点,点权为此边权,该点为两点根的父亲. 性质:(此处为最小生成树重构树) 1.lca(u,v)为u到v路径上的最大边权 2 ...
- git bisect:让你闭眼都能定位疑难 bug的利器
摘要:git bisect命令使用二分搜索算法来查找提交历史中的哪一次提交引入了错误.它几乎能让你闭着眼睛快速定位任何源码导致的问题,非常实用. 本文分享自华为云社区<利用好 git bisec ...
- 论文解读(GraphSMOTE)《GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks》
论文信息 论文标题:GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks论文作者:Tianxi ...