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()方法的效率问题 的相关文章

随机推荐

  • 程序员过了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