`
李灵晖-raylee
  • 浏览: 139812 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

java基础入门-还原字符串的拼接的过程

 
阅读更多

平常我们很多时候都会使用字符串的拼接,但是为什么使用“+”号就是比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字段串代码拼接小工具

    综上所述,"SQL2JAVA-java字段串代码拼接小工具"是一个针对Java和SQL开发者的实用工具,它可以帮助简化字符串拼接的过程,尤其是构建SQL查询语句。通过提供直观的用户界面,使得开发者能够快速高效地在Java代码和SQL...

    章节2:编程基本概念之24:字符串-转义字符-字符串拼接-字符串复制-input获取键盘输入.rar

    字符串拼接是指将两个或多个字符串连接成一个字符串的过程。在Python中,可以通过加号(+)运算符来实现字符串的拼接。例如,"Hello, " + "world!" 会得到 "Hello, world!"。此外,还可以使用format方法或者f-string...

    以太坊solidity字符串拼接实现

    在以太坊智能合约开发中,处理字符串拼接是一个常见的需求。不过,在Solidity编程语言中,由于其特定的类型系统和内存管理机制,没有像其他高级编程语言(如JavaScript或Python)中那样直接支持字符串拼接运算符。...

    2-09-字符串的拼接.py

    字符串拼接则是将多个字符串连接成一个字符串的过程。在Python中,实现字符串拼接有多种方法,包括但不限于使用加号(+)、使用format方法、使用f-string(格式化字符串字面量)以及使用join方法等。 加号(+)是最...

    fortran字符串拼接

    FORTRAN 字符串拼接 在 Fortran 语言中,字符串拼接是非常重要的操作之一。它可以将整数或实数类型转换为字符串类型,以便于文件命名、数据读取和写入等操作。在本节中,我们将详细介绍 FORTRAN 字符串拼接的方法和...

    java-string-similarity, 各种字符串相似性和距离算法.zip

    java-string-similarity, 各种字符串相似性和距离算法 java-string-similarity 实现不同字符串相似度和距离度量的库。 目前已经实现了许多算法( 包括Levenshtein编辑距离和 sibblings,jaro winkler,最长公共子序列...

    字符串拼接工具

    "字符串拼接工具"就是针对这类需求而设计的小型实用程序。它能够帮助开发者快速、有效地组合多个字符串,添加前缀或后缀,使得多行文本的格式化变得简单。 在编程中,字符串拼接通常是通过字符串连接运算符或者使用...

    Java基础入门--教学课件--PPT

    这份"Java基础入门--教学课件--PPT"旨在帮助初学者掌握Java编程的基本概念和语法,为深入学习Java打下坚实的基础。 1. **Java简介**: Java由Sun Microsystems(现为Oracle公司)于1995年推出,由詹姆斯·高斯林等...

    头歌python程序设计答案-07-字符串拼接.ev4.rar

    本资源"头歌python程序设计答案-07-字符串拼接.ev4.rar"可能是一个教学视频或课程资料,专注于讲解如何在Python中进行字符串的拼接操作。这里我们将详细讨论Python中的字符串拼接方法。 首先,Python中的字符串是不...

    sql 多行合并某一列字符串拼接的示例

    本文将深入探讨如何利用SQL实现多行数据的合并,特别关注字符串拼接的技术,并通过一个具体的示例来展示这一过程。 ### SQL字符串拼接的原理 在SQL中,字符串拼接是指将多个字符串值连接成一个单一的字符串。不同...

    java代码-java字符串工具类源代码合集

    java代码-java字符串工具类源代码合集 ——学习参考资料:仅用于个人学习使用!

    JAVA中字符-字符串常用的方法.doc

    JAVA 中字符-字符串常用的方法 JAVA 中字符-字符串常用的方法是指在 Java 编程语言中处理字符和字符串的各种方法。这些方法主要来自 Character 类和 String 类,它们提供了对字符和字符串的各种操作,包括字符的...

    Python字符串拼接方法详解.docx

    Python 字符串拼接方法详解 Python 中的字符串拼接方法有多种,本文将通过实例详细讲解这几种方法的使用及各自的特点。 字符串拼接方法一:使用“+”连接 Python 中最简单的字符串拼接方法是使用“+”连接。例如...

    java实验-字符串.docx

    在Java编程中,字符串是经常使用的数据类型,用于表示文本信息。本实验主要涉及三个方面的内容:字符串的基本操作,字符串的比较以及不同字符串类(String和StringBuffer)的使用和性能分析。 首先,我们来看第一个...

    jquery拼接ajax 的json和字符串拼接的方法

    整理文档,搜刮出一个jquery拼接ajax 的json和字符串拼接的代码,稍微整理精简一下做下分享。 jQuery拼接字符串ajax &lt;form id="myForm" action="#"&gt; &lt;input name="name"/&gt; &lt;input name="age"/&gt;...

    zk扩展工具--spring集成--字符串处理--日期处理

    在IT行业中,ZooKeeper(简称zk)是一个广泛使用...同时,我们还介绍了Java中的字符串和日期处理方法,这些都是日常开发中不可或缺的基础技能。在实际项目中,理解和熟练运用这些技术将极大地提高开发效率和代码质量。

    Java根据正则表达式生成字符串—Xeger,automaton

    在Java编程语言中,处理字符串和正则表达式是一项常见的任务。正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和...

    Oracle10g自定义聚合函数(字符串拼接)

    * 超大字符串拼接,单个字符串4000、分隔符100,可拼出超4000的超长字符串 * 可自定义指定分隔符separator * 可自定义指定排序字段sequence,对于数字或日期类型的字段,先转为字符串,比如to_char(line, 'FM000'...

    Python 3 介绍(九)-- Python字符串.docx

    Python字符串基础知识点: 字符串是Python中一种重要的数据类型,用于存储和处理文本信息。Python 3中的字符串具有不可变性,即创建后不能改变其内容。字符串的表示可以使用单引号(' ')或双引号(" "),并且可以包含...

    02-python-入门-数据类型-数字变量-字符串-索引和分片

    在这个"02-python-入门-数据类型-数字变量-字符串-索引和分片"的学习笔记中,我们将深入探讨Python的基础知识,包括数字变量、数据类型以及字符串的索引和分片操作。 首先,让我们从“02.01-入门演示.ipynb”开始,...

Global site tag (gtag.js) - Google Analytics