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 ...
随机推荐
- 用上这个 Mock 神器,让你的开发爽上天!
前端的痛苦 作为前端,最痛苦的是什么时候? 每个迭代,需求文档跟设计稿都出来了,静态页面唰唰两天就做完了.可是做前端又不是简单地把后端吐出来的数据放到页 面上就完了,还有各种前端处理逻辑啊. 后端 ...
- CentOS7安装部署Mongodb
1.下载安装包 打开官网,跳转至下载界面,选择对应版本的安装包,拷贝其链接,这里是手动安装,所以下载tgz安装包,如果要自动化安装,选择server的rpm自动安装包 https://www.mong ...
- ThinkPHP V6.0.12在php8.1下验证码出现问题
一.问题描述 1.项目需求要求使用PHP8.1.*版本 2.运行程序发现验证码不生效报错如下: 二.错误描述 1.报错信息得出:从浮点(数字)到整数的隐式转换将失去精度 三.解决流程 1.找到报错文件 ...
- 聊聊FLINK-25631贡献
从入行做数据库开发,到2018年过渡到大数据开发,可以说我已经与sql朝夕相处了七八年了,经常惊讶于简单的语法就能产生复杂的操作,而且还能根据索引等统计信息自动优化,不禁很想实现自己的sql语法,却不 ...
- 零基础学Java第四节(字符串相关类)
本篇文章是<零基础学Java>专栏的第四篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! String 本文章首发于公众号[编程攻略] 在Java中,我们经 ...
- Docker学习重点(7)~DockerFile
一.DockerFile DockerFile是用来构建docker镜像的文件,可以理解为命令参数脚本! 1.构建步骤: 编写一个dockerfile文件 docker build 构建成为一个镜像 ...
- PostGIS 扩展创建失败原因调查
Issue 升级 PostgreSQL 9.1 的一个集群,由于该集群用到了 PostGIS,在升级 PostgreSQL 时也需要升级一下 PostGIS.PostGIS 相关软件安装好后,在 Po ...
- vuex+Es6语法补充-Promise
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,采用 集中式存储管理 单页面的状态管理/多页面状态管理 使用步骤: // 1.导入 import Vuex from 'vuex' // ...
- Es图形化软件使用之ElasticSearch-head、Kibana,Elasticsearch之-倒排索引操作、映射管理、文档增删改查
今日内容概要 ElasticSearch之-ElasticSearch-head ElasticSearch之-安装Kibana Elasticsearch之-倒排索引 Elasticsearch之- ...
- Vue自定义组件之v-model的使用
自定义组件之v-model的使用 v-model的语法糖可以为下面v-bind && @input联合完成: <input v-model="text"> ...