String、StringBuilder、StringBuffer三者执行效率

一、String、StringBuilder、StringBuffer的执行效率

StringBuilder > StringBuffer > String


二、测试代码

package cn.test;public class Test {final static int COUNT = 10000 * 1;public static void main(String[] args) {stringAdd(COUNT);stringConcat(COUNT);stringBuilder(COUNT);stringBuffer(COUNT);}public static void stringAdd(int count) {long start = System.currentTimeMillis();String s = "";for (int i = 0; i < count; i++) {s += "1";}System.out.println("StringAdd:" + (System.currentTimeMillis() - start));}public static void stringConcat(int count) {long start = System.currentTimeMillis();String s = "";for (int i = 0; i < count; i++) {s = s.concat("1");}System.out.println("StringConcat:" + (System.currentTimeMillis() - start));}public static void stringBuilder(int count) {long start = System.currentTimeMillis();StringBuilder s = new StringBuilder();for (int i = 0; i < count; i++) {s.append("1");}System.out.println("StringBuilder:" + (System.currentTimeMillis() - start));}public static void stringBuffer(int count) {long start = System.currentTimeMillis();StringBuffer s = new StringBuffer();for (int i = 0; i < count; i++) {s.append("1");}System.out.println("StringBuffer:" + (System.currentTimeMillis() - start));}
}

COUNT的值设置

(1)10000*1

StringAdd:89
StringConcat:16
StringBuilder:1
StringBuffer:1

(2)10000*10

StringAdd:4621
StringConcat:1383
StringBuilder:3
StringBuffer:4

(3)10000*100

StringAdd:215076
StringConcat:154182
StringBuilder:16
StringBuffer:18

(4)10000*1000(String花费时间太多了,没办法测试这个数量级)

StringBuilder:50
StringBuffer:264

(5)10000*10000(String花费时间太多了,没办法测试这个数量级)

StringBuilder:377
StringBuffer:2558

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库死锁_死锁荔枝_解决方法

转自高性能mysql&#xff1b; 【1.3.2】死锁 1&#xff09;死锁定义&#xff1a;指两个或多个事务在同一资源上相互占用&#xff0c; 并请求锁定对方占用的资源&#xff0c;从而导致恶性循环的现象&#xff1b; 当多个事务试图以不同顺序锁定资源时&#xff0c;就可能产生死锁…

sql注入攻击和PreparedStatement有效防止sql注入攻击

【1】sql注入攻击&#xff1a; /*** SQL 注入.*/Testpublic void testSQLInjection() {String username "a OR PASSWORD ";String password " OR 11";String sql "SELECT * FROM user_tbl WHERE user_name " username " AND " …

MVC之新增

在我们使用ASP.NET MVC时&#xff0c;用得最多的一定是数据的增删查改吧。我今天就讲一下&#xff0c;到底是如何实现数据的新增的。 顺序大概是这样的&#xff0c;比如&#xff1a;有一个新增的按钮&#xff0c;我们要点击它然后弹出一个模态框&#xff0c;我们要在模态框的in…

MySQL的表数据复制

A表B表复制A表的数据code到B表 一、普通SQL UPDATE A a,B b set b.codea.code where a.nameb.name; 二、存储过程 #定义复制存储过程 drop procedure if exists copy_A_to_B; create procedure copy_A_to_B() begindeclare a_name varchar(255);declare a_code varchar(255);de…

MVC之查询

开发工具与关键技术&#xff1a;Visual Studio、MVC 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.04.13我之前已经写过新增了&#xff0c;那么现在我来写一下查询。查询很多地方都会用到吧&#xff0c;比如我们要让数据在表格显示出来就要用查询来让表格数据初始化&#xf…

java反射的工具类的函数集合

import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type;/*** 反射的 Utils 函数集合* 提…

Spring Boot Server容器配置

转载自 Spring Boot Server容器配置参数配置容器 server.xx开头的是所有servlet容器通用的配置&#xff0c;server.tomcat.xx开头的是tomcat特有的参数&#xff0c;其它类似。 所有参数绑定配置类&#xff1a;org.springframework.boot.autoconfigure.web.ServerProperties 代码…

MVC之删除

开发工具与关键技术&#xff1a;Visual Studio、MVC 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.04.17在页面的数据表格中&#xff0c;既然有新增&#xff0c;那一定也有删除吧。那MVC是怎么写删除的呢&#xff0c;就让我来讲一下吧。 删除一般有删除单条数据和删除多条数…

转】Eclipse编辑Spring配置文件xml时自动提示类class包名

转自 http://bigdragon.iteye.com/blog/2396081 第一步&#xff0c;先查看下自己的Eclipse是什么版本&#xff0c;步骤如下&#xff1a; 1.1 点击Eclipse菜单‘Help -> About Eclipse’&#xff0c;如下图&#xff1a; 1.2 点击Eclipse图标如下&#xff0c;看清楚哦&…

Spring Boot读取配置的几种方式

转载自 Spring Boot读取配置的几种方式读取application文件 在application.yml或者properties文件中添加&#xff1a; info.addressUSA info.companySpring info.degreehighValue注解读取方式import org.springframework.beans.factory.annotation.Value; import org.springfra…

MVC之修改

开发工具与关键技术&#xff1a;Visual Studio、MVC 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.04.24ASP.NET MCV的增删查改在我前面的讲解中&#xff0c;我已经把前三个都说了一下&#xff0c;现在就只剩下修改没讲了。所以&#xff0c;我今天就给你们讲一下&#xff0c…

VMnet1和VMnet8 未识别的网络的解决方法

转自&#xff1a; https://blog.csdn.net/jackphang/article/details/8939738 我的系统是win7 64位&#xff0c;它居然不能识别VMnet1和VMnet8&#xff0c;在网上找了些资料&#xff0c;发现所有资料都是一样的。不过事实证明是正确的。 解决办法&#xff1a; 1&#xff0c;在…

jps命令:查看Java进程等详细信息

转载自 jps命令&#xff1a;查看Java进程等详细信息jps是java自带的查看java进程的命令&#xff0c;通过这个命令可以查看当前系统所有运行中的java进程、java包名、jar包名及JVM参数等。jps -help 可以查看命令用法。-q: 只显示VM 标示&#xff0c;不显示jar,class, main参数等…

MVC如何添加Model

开发工具与关键技术&#xff1a;Visual Studio、MVC 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.04.27初步学习MVC编程模式的时候&#xff0c;我基本清楚了如何创建MVC&#xff0c;而添加model&#xff08;模型&#xff09;似乎还不够理解&#xff0c;通过学习我大概了解了…

在win10系统中安装Visual C++ 6.0的具体方法

转自&#xff1a; https://blog.csdn.net/qq_39235641/article/details/79102694 很多学C语言的同学很熟悉VC6.0&#xff0c;但是在win10系统下&#xff0c;VC6.0便无法打开&#xff0c;报错&#xff1a;0x0000142。这是因为汉化版本和最新的win10系统兼容性不好导致的。win10…

如何设计一个安全的登录流程

转载自 如何设计一个安全的登录流程登录是系统中最重要的一个功能之一&#xff0c;登录成功就能拥有系统的使用权利&#xff0c;所以设计一个安全的登录流程是十分必要的&#xff0c;那在一般登录中需要考虑哪些重要因素呢&#xff1f;我们一一列表一下。使用https协议进行传输…

如何导入数据模板到MVC

开发工具与关键技术&#xff1a;Visual Studio、MVC 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.5.3在平常的生活中&#xff0c;我们可能需要添加大量的数据&#xff0c;这时一条一条地新增肯定不能满足我们的要求了&#xff0c;所以我们就需要批量导入数据了。现在我就来…

在左表或右表的连接字段上建立索引对左、内连接的查询效率的优化情况分析

-- 1、建表 drop table if exists dept_tbl;create table dept_tbl (rcrd_id int unsigned primary key auto_increment comment 记录编号, dept_id int unsigned not null comment 部门编号) engine innodb default charsetutf8 comment 部门表;drop table if exists emp_tb…

并发控制--悲观锁和乐观锁详解

转载自 并发控制--悲观锁和乐观锁详解背景考虑下面两个并发带来的问题&#xff1a;1、丢失更新&#xff1a;一个事务的更新结果覆盖了其它事务的更新结果&#xff0c;即所谓的更新丢失。2、脏读&#xff1a;当一个事务读取其它完成一半事务的记录时&#xff0c;就会发生脏读取。…

如何导出数据到Excel表格

开发工具与关键技术&#xff1a;Visual Studio、MVC 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.5.5我们在日常的生活中常常会看到很多的数据&#xff0c;有时&#xff0c;我们不一定只是在项目里面看到数据&#xff0c;可能我们还要在其他的地方使用&#xff0c;这时我们…