java 循环遍历字符串_遍历字符串中所有字符的最快方法
第一个更新:在生产环境(不建议使用)中尝试此方法之前,请先阅读以下内容:http : //www.javaspecialists.eu/archive/Issue237.html 从Java 9开始,上述解决方案将不再起作用,因为现在Java默认将字符串存储为byte []。
第二次更新:截至2016年10月25日,在我的AMDx64 8core和源1.8上,使用'charAt'和字段访问之间没有区别。看来jvm已经过充分优化,可以内联和精简任何'string.charAt(n)'调用。
这完全取决于String被检查的时间。如问题所述,如果用于长字符串,则检查字符串的最快方法是使用反射访问char[]字符串的支持。
在64种AMD Phenom II 4核心955 @ 3.2 GHZ(在客户端模式和服务器模式下)上使用9种不同技术(见下文!)对JDK 8(win32和win64)进行完全随机化的基准测试表明,使用String.charAt(n)速度最快字符串,reflection用于访问字符串支持数组的字符串的速度几乎是大型字符串的两倍。
本实验
尝试了9种不同的优化技术。
所有字符串内容都是随机的
以0、1、2、4、8、16等开头的字符串大小为2的倍数的形式进行测试。
每个字符串大小进行1000次测试
每次将测试随机排列。换句话说,每次测试都以随机顺序进行,超过1000次。
整个测试套件都向前和向后进行,以显示JVM预热对优化和时间的影响。
整个套件执行两次,一次在-client模式下,另一个在-server模式下。
结论
-客户端模式(32位)
java 循环遍历字符串_遍历字符串中所有字符的最快方法相关推荐
- java遍历字符串字符_Java 遍历字符串中所有字符的最快方法
小编典典 在我的AMDx64 8core和源1.8上,使用'charAt'和字段访问之间没有区别.看来jvm已经过充分优化,可以内联和精简任何'string.charAt(n)'调用. 这完全取决于S ...
- python如何增加字符串_在python中增加字符的方法
在本教程中,我们将看到在Python中增加字符的不同方法. 类型转换 首先让我们看看如果在不进行类型转换的情况下向char添加int会发生什么. 示例## str initialization cha ...
- [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别
[重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别 Read 读入方法 read(): 一般是这种形式 public int read() 1.从流数据中读取的 ...
- 在node.js中复制文件的最快方法
本文翻译自:Fastest way to copy file in node.js Project that I am working on (node.js) implies lots of ope ...
- java循环左一_左旋转字符串(Java)-循环Index方式
左旋转字符串(Java)-循环Index方式 题目要求 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循 ...
- java 以什么开头_判断字符串以什么开头
Java 判断字符串是否以什么开头 可以使用 startsWith() 判断,例如: String str = "Hello World.";// 判断是否以 Hello 开始Sy ...
- java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术
java 字符数组与字符串 Java通常会排在前五种最流行的编程语言中,因此可以理解. 它是一种通用语言,非常容易学习,因为它是一种高级语言,并且可以满足许多用例. 由于这些原因,Java是一门很棒的 ...
- cstring移除指定字符串_从String中移除空白字符的多种方式!?差别竟然这么大!...
作者 | Hollis来源 | Hollis字符串,是Java中最常用的一个数据类型了.我们在日常开发时候会经常使用字符串做很多的操作.比如字符串的拼接.截断.替换等.这一篇文章,我们介绍一个比较常见 ...
- java正则表达式去除空格_去掉字符串前后所有空格的正则表达式
正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符 ...
最新文章
- poj1651(矩阵连乘)
- Jmeter工具中参数化、正则表达式提取器、响应断言的实现
- mysql优化sql相关(持续补充)
- 移动互联网APP测试流程及测试点(转载) (二)
- 语音识别ASR技术通识
- 下拉样式_Axure 组件重写之神奇的文本框和下拉框
- android获取内置和外置SD卡路径 - z
- 使用tcpdump找出PP用户
- 链家租房数据抓取流程、分析
- 数据库考试内容(MYSQL)
- 在阿里云容器服务上基于Istio实现出口Egress流量管理
- 服务器项目描述,项目服务器 2010 SP2 的描述
- 在sae上面运行微信第三方平台微擎,带视频录像
- 10分钟就能完成别人半天的工作量,Word长文档排版技巧分享
- 【中秋系列】马上中秋了,给老板写了个猜灯谜小脚本,猜到的越多奖金就越高?赚翻了~
- 她二本科毕业,拿到阿里年薪40万offer!经验都记录在这几个公众号日记中
- 虚拟桌面的服务器,虚拟桌面与集合
- Sublime的使用小技巧
- OA系统十五:请假申请一:【请假申请】这个内嵌界面的数据库设计;(即请假申请这个线型工作流程的数据库设计!)
- package.json 与 package-lock.json文件的区别
热门文章
- Linux文件目录操作命令-pwd命令
- 第1周 - 课程材料
- jquery滚动条插件slimScroll
- 陈超仁说自己的CTO成长史(3)
- html的基本操作和基本标签:标题,有序列表和无序列表等
- 墨者学院-HTTP动作练习
- 3D Max2018菜单栏问题处理方法(无法选中子菜单) 2021-1-1
- React + Ts 实现三子棋小游戏
- lineNumber: 8; columnNumber: 48; 元素类型为 “id“ 的内容必须匹配 “EMPTY“。
- 华东师范学院大学计算机考研,华东师范大学-825-2018-计算机考研-真题.pdf