java中String+String与StringBuilder的append()方法的效率问题

2023-11-09

因为上一次的A题过程中,发现String的+总是超时,后来用到了append()方法,就过了。发现两者的效率存在很大的区别,测试如下:

public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String str = ""; 
		StringBuffer sb = new StringBuffer(); 
		long start = 0L; 
		long end = 0L; 
		start = System.currentTimeMillis(); 
		for (int i = 0; i < 100000; i++) { 
		str = str + "a"; 
		} 
		end = System.currentTimeMillis(); 
		System.out.println("使用string的时间是:" + (end - start) + "毫秒!"); 

		start = System.currentTimeMillis(); 
		for (int i = 0; i < 100000; i++) { 
		sb.append("a"); 
		} 
		end = System.currentTimeMillis(); 
		System.out.println("使用StringBuffer的时间是:" + (end - start) + "毫秒!"); 
		//System.out.println(getMax("aba"));
	}
使用string的时间是:4471毫秒!
使用StringBuffer的时间是:3毫秒!

这完全不是在一个层次上,希望各位谨记!大量字符串连接一定要用append()方法,原因呢其实很简单,字符串连接每次都需要创建新的字符串对象来保存新串,这样。。。。。。你懂得!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中String+String与StringBuilder的append()方法的效率问题 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • Haskell:从后面访问列表

    今天我开始学习Haskell 我对函数式语言有点陌生 而且我非常喜欢 Haskell 然而 我有一个关于它的设计的问题困扰着我 从我到目前为止的理解来看 访问列表后面的元素似乎比访问前面的元素要复杂得多 类似于xs x where xs a
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java

随机推荐

  • 程序员过了35岁以后,到底应该怎么走才能保证自己不失业?

    目录 市场对 35 岁以上的程序员是否有就业偏见 为什么会出现对 35 岁程序员的一些偏见呢 程序员 35 岁的破局之道 大家好 今天给大家聊聊目前程序员就业市场上普遍对所谓的 35 岁码农的偏见问题 以及对于大龄程序员的破局之道 市场对
  • 压测工具哪个好?LoadRunner、Jmeter、Locust、Wrk 全方位对比....

    当你想做性能测试的时候 你会选择什么样的测试工具呢 是会选择wrk jmeter locust 还是loadrunner呢 今天 笔者将根据自己使用经验 针对jmeter locust wrk和loadrunner常用的性能测试工具进行简单
  • git提交用户显示错误

    问题 假设 A B两个用户 A代码写好提交到git git commit显示A提交 但是git activity却显示是B提交的 也就是git提交人信息显示不对 说明 这在多人共同使用开发机的场景下非常容易出现git提交信息显示的提交人不对
  • 谷歌浏览器版本查看方法

    guge版本查看方法
  • GDB【5】-嵌入式平台xxx-linux-gdb远程调试动态库

    1 下位机准备工作 下位机调试启动脚本 bin bash version 01 00 0005 NAND PATH nandflash LIB PATH NAND PATH lib BIN PATH NAND PATH bin CFG PA
  • 微信小程序修改顶部通知栏字体颜色,手机电量时间.....。

    我用的是Taro多端编译写的小程序 原生的换成wx setNavigationBarColor即可 Taro setNavigationBarColor frontColor ffffff backgroundColor 1c2060 an
  • 各种协议和HTTP协议之间的关系!!!

    Tips 他们之间主要是TCP IP和HTTP的关系 当想要访问一个网址时 1 DNS解析 获取到访问服务器的IP 2 HTTP生成请求报文请求 请求访问页面资源 3 TCP协议将报文切割成一份一份报文段后 以可靠的方式进行传输 4 IP协
  • 把notepad++添加到鼠标右键

    1 首先你的桌面上创建一个txt文件 在文件里添加下面的内容 Windows Registry Editor Version 5 00 HKEY CLASSES ROOT Shell 使用NotePad 编辑 HKEY CLASSES RO
  • 声音识别的 ImageNet 诞生了

    转自 https www zhihu com question 56816282 answer 150639596 谷歌机器感知研究小组 Machine Perception Research 最新发布了一个大规模的音频数据集AudioSe
  • 存储器层次结构(一)

    存储器层次结构 一 目录 1 存储器层次结构 2 静态RAM 3 动态RAM 4 DRAM阵列 5 南北桥 6 磁盘 7 对扇区的访问时间 8 格式化的磁盘容量 9 操作系统执行读数据到主存的底层 10 读文件时间 11 适配器 12 固态
  • 实现51单片机按键按一下LED熄灭,再按一下LED亮起来的操作

    前言 完成51单片机基础的按键操作 实现按键按一下LED熄灭 再按一下LED亮起来的操作 一 完成51单片机基础的按键操作 实现按键按一下LED熄灭 再按一下LED亮起来的操作 include
  • Circle创立十年:从0到1000亿USDC流通量的愿景与思考

    原文标题 Why Circle CEO Jeremy Allaire Is So Optimistic About Stablecoins Future 原文作者 Laura Shin 原文来源 unchained 编译 Kaori Blo
  • 【华为OD】

    华为OD试题注意事项 使用合适的编程语言 在华为OD机试中多数情况下使用C 或Java 按照题目要求进行编码 仔细阅读题目描述并理解要求 在编码前可以进行伪代码编写或画流程图有助于理解和排除逻辑错误 注意代码的规范性 注重代码的可读性和可维
  • 服务器如何存储文件夹在哪,ecs云服务器如何存储文件夹

    ecs云服务器如何存储文件夹 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 按需购买的两台同类型弹性云服务器 操作系统类
  • 实用tcpdump命令 【转】

    文章来源 实用tcpdump命令 查看本机与mysql的操作命令 注意 i any表示监听所有网络接口 我们也根据自身情况选择网络接口 tcpdump i any w dst port 3306 strings 查看本机58895上与mys
  • 解决bug:Error creating bean with name 'webHandler' defined in class

    今天写代码 用到了 Spring Boot Admin 这是一个管理和监控的开源监控软件 但是今天一运行就报以下错误 Error creating bean with name webHandler defined in class wha
  • vue-message-simulate

    vue message simulate a light plugin of vue it simulates alert confrim model 依赖于sass 切 不支持ie9 一下的版本 使用如下 下载之后 在main js中 1
  • 如何在 Linux 中设置或更改系统主机名

    博学谷提供技术支持 主机名能帮助人们轻松的识别网络中的机器 单独运行hostname 不带任何参数 将返回 Linux 系统的当前主机名 如下所示 hostname TecMint 如果想更改 Linux 系统的主机名 只需运行 hostn
  • 测试用例设计-X云

    测试用例概述 测试用例设计方法 1 先对符合规则的设计一条用例 等价类方法 12个字符符合6 18个长度 不符合规则的 lt 6的字符 gt 18个字符 考虑边界值 我记得以前是考虑一个条件 另一个条件选有效等价类即可 这里考虑两个三件 那
  • java中String+String与StringBuilder的append()方法的效率问题

    因为上一次的A题过程中 发现String的 总是超时 后来用到了append 方法 就过了 发现两者的效率存在很大的区别 测试如下 public static void main String args TODO 自动生成的方法存根 Str