平常我们很多时候都会使用字符串的拼接,但是为什么使用“+”号就是比stringbuilder慢,而且慢很多?
实验
package com.ray.teststring;
/**
* 对比拼接字符串的两种方式
*
* @author ray
* @since 2015-04-19
* @version 1.0
*
*/
public class StringJoint {
/**
* 使用+拼接
*/
public void stringJointWithPlus() {
String str = "";
for (int i = 0; i < 60000; i++) {
str += "a";
}
}
/**
* 使用stringbuilder拼接
*/
public void stringJointWithStringBuilder() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 60000; i++) {
sb.append("a");
}
}
public static void main(String[] args) {
StringJoint stringJoint = new StringJoint();
long beginTime = System.currentTimeMillis();
stringJoint.stringJointWithPlus();
long firstTime = System.currentTimeMillis();
System.out.println(firstTime - beginTime);// 6813
long beginTime2 = System.currentTimeMillis();
stringJoint.stringJointWithStringBuilder();
long secondTime = System.currentTimeMillis();
System.out.println(secondTime - beginTime2);// 16
}
}
下面我们先输出+号操作里面的东西
package com.ray.teststring;
/**
* 对比拼接字符串的两种方式
*
* @author ray
* @since 2015-04-19
* @version 1.0
*
*/
public class StringJoint {
/**
* 使用+拼接
*/
public void stringJointWithPlus() {
String str = "";
for (int i = 0; i < 60000; i++) {
String temp=str;
System.out.println(temp.equals(str));
str += "a";
System.out.println(temp.equals(str));
}
}
/**
* 使用stringbuilder拼接
*/
public void stringJointWithStringBuilder() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 60000; i++) {
sb.append("a");
}
}
public static void main(String[] args) {
StringJoint stringJoint = new StringJoint();
long beginTime = System.currentTimeMillis();
stringJoint.stringJointWithPlus();
long firstTime = System.currentTimeMillis();
System.out.println(firstTime - beginTime);// 6813
long beginTime2 = System.currentTimeMillis();
stringJoint.stringJointWithStringBuilder();
long secondTime = System.currentTimeMillis();
System.out.println(secondTime - beginTime2);// 16
}
}
输出结果:
true
false
true
false
true
false
。。。
从结果上面来看,里面两个对象一直都是交错的不相同
下面我们来还原一下+号的操作:
str += "a";等价于
StringBuilder sb = new StringBuilder();
sb.append("a");
这两句的执行,所以在+的同时不断的new新的对象,所以导致性能低下
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
综上所述,"SQL2JAVA-java字段串代码拼接小工具"是一个针对Java和SQL开发者的实用工具,它可以帮助简化字符串拼接的过程,尤其是构建SQL查询语句。通过提供直观的用户界面,使得开发者能够快速高效地在Java代码和SQL...
字符串拼接是指将两个或多个字符串连接成一个字符串的过程。在Python中,可以通过加号(+)运算符来实现字符串的拼接。例如,"Hello, " + "world!" 会得到 "Hello, world!"。此外,还可以使用format方法或者f-string...
在以太坊智能合约开发中,处理字符串拼接是一个常见的需求。不过,在Solidity编程语言中,由于其特定的类型系统和内存管理机制,没有像其他高级编程语言(如JavaScript或Python)中那样直接支持字符串拼接运算符。...
字符串拼接则是将多个字符串连接成一个字符串的过程。在Python中,实现字符串拼接有多种方法,包括但不限于使用加号(+)、使用format方法、使用f-string(格式化字符串字面量)以及使用join方法等。 加号(+)是最...
FORTRAN 字符串拼接 在 Fortran 语言中,字符串拼接是非常重要的操作之一。它可以将整数或实数类型转换为字符串类型,以便于文件命名、数据读取和写入等操作。在本节中,我们将详细介绍 FORTRAN 字符串拼接的方法和...
java-string-similarity, 各种字符串相似性和距离算法 java-string-similarity 实现不同字符串相似度和距离度量的库。 目前已经实现了许多算法( 包括Levenshtein编辑距离和 sibblings,jaro winkler,最长公共子序列...
"字符串拼接工具"就是针对这类需求而设计的小型实用程序。它能够帮助开发者快速、有效地组合多个字符串,添加前缀或后缀,使得多行文本的格式化变得简单。 在编程中,字符串拼接通常是通过字符串连接运算符或者使用...
这份"Java基础入门--教学课件--PPT"旨在帮助初学者掌握Java编程的基本概念和语法,为深入学习Java打下坚实的基础。 1. **Java简介**: Java由Sun Microsystems(现为Oracle公司)于1995年推出,由詹姆斯·高斯林等...
本资源"头歌python程序设计答案-07-字符串拼接.ev4.rar"可能是一个教学视频或课程资料,专注于讲解如何在Python中进行字符串的拼接操作。这里我们将详细讨论Python中的字符串拼接方法。 首先,Python中的字符串是不...
本文将深入探讨如何利用SQL实现多行数据的合并,特别关注字符串拼接的技术,并通过一个具体的示例来展示这一过程。 ### SQL字符串拼接的原理 在SQL中,字符串拼接是指将多个字符串值连接成一个单一的字符串。不同...
java代码-java字符串工具类源代码合集 ——学习参考资料:仅用于个人学习使用!
JAVA 中字符-字符串常用的方法 JAVA 中字符-字符串常用的方法是指在 Java 编程语言中处理字符和字符串的各种方法。这些方法主要来自 Character 类和 String 类,它们提供了对字符和字符串的各种操作,包括字符的...
Python 字符串拼接方法详解 Python 中的字符串拼接方法有多种,本文将通过实例详细讲解这几种方法的使用及各自的特点。 字符串拼接方法一:使用“+”连接 Python 中最简单的字符串拼接方法是使用“+”连接。例如...
在Java编程中,字符串是经常使用的数据类型,用于表示文本信息。本实验主要涉及三个方面的内容:字符串的基本操作,字符串的比较以及不同字符串类(String和StringBuffer)的使用和性能分析。 首先,我们来看第一个...
整理文档,搜刮出一个jquery拼接ajax 的json和字符串拼接的代码,稍微整理精简一下做下分享。 jQuery拼接字符串ajax <form id="myForm" action="#"> <input name="name"/> <input name="age"/>...
在IT行业中,ZooKeeper(简称zk)是一个广泛使用...同时,我们还介绍了Java中的字符串和日期处理方法,这些都是日常开发中不可或缺的基础技能。在实际项目中,理解和熟练运用这些技术将极大地提高开发效率和代码质量。
在Java编程语言中,处理字符串和正则表达式是一项常见的任务。正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和...
* 超大字符串拼接,单个字符串4000、分隔符100,可拼出超4000的超长字符串 * 可自定义指定分隔符separator * 可自定义指定排序字段sequence,对于数字或日期类型的字段,先转为字符串,比如to_char(line, 'FM000'...
Python字符串基础知识点: 字符串是Python中一种重要的数据类型,用于存储和处理文本信息。Python 3中的字符串具有不可变性,即创建后不能改变其内容。字符串的表示可以使用单引号(' ')或双引号(" "),并且可以包含...
在这个"02-python-入门-数据类型-数字变量-字符串-索引和分片"的学习笔记中,我们将深入探讨Python的基础知识,包括数字变量、数据类型以及字符串的索引和分片操作。 首先,让我们从“02.01-入门演示.ipynb”开始,...