第一个更新:在生产环境(不建议使用)中尝试此方法之前,请先阅读以下内容: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 循环遍历字符串_遍历字符串中所有字符的最快方法相关推荐

  1. java遍历字符串字符_Java 遍历字符串中所有字符的最快方法

    小编典典 在我的AMDx64 8core和源1.8上,使用'charAt'和字段访问之间没有区别.看来jvm已经过充分优化,可以内联和精简任何'string.charAt(n)'调用. 这完全取决于S ...

  2. python如何增加字符串_在python中增加字符的方法

    在本教程中,我们将看到在Python中增加字符的不同方法. 类型转换 首先让我们看看如果在不进行类型转换的情况下向char添加int会发生什么. 示例## str initialization cha ...

  3. [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别

    [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别 Read 读入方法 read(): 一般是这种形式 public int read() 1.从流数据中读取的 ...

  4. 在node.js中复制文件的最快方法

    本文翻译自:Fastest way to copy file in node.js Project that I am working on (node.js) implies lots of ope ...

  5. java循环左一_左旋转字符串(Java)-循环Index方式

    左旋转字符串(Java)-循环Index方式 题目要求 ​ 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循 ...

  6. java 以什么开头_判断字符串以什么开头

    Java 判断字符串是否以什么开头 可以使用 startsWith() 判断,例如: String str = "Hello World.";// 判断是否以 Hello 开始Sy ...

  7. java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术

    java 字符数组与字符串 Java通常会排在前五种最流行的编程语言中,因此可以理解. 它是一种通用语言,非常容易学习,因为它是一种高级语言,并且可以满足许多用例. 由于这些原因,Java是一门很棒的 ...

  8. cstring移除指定字符串_从String中移除空白字符的多种方式!?差别竟然这么大!...

    作者 | Hollis来源 | Hollis字符串,是Java中最常用的一个数据类型了.我们在日常开发时候会经常使用字符串做很多的操作.比如字符串的拼接.截断.替换等.这一篇文章,我们介绍一个比较常见 ...

  9. java正则表达式去除空格_去掉字符串前后所有空格的正则表达式

    正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符 ...

最新文章

  1. poj1651(矩阵连乘)
  2. Jmeter工具中参数化、正则表达式提取器、响应断言的实现
  3. mysql优化sql相关(持续补充)
  4. 移动互联网APP测试流程及测试点(转载) (二)
  5. 语音识别ASR技术通识
  6. 下拉样式_Axure 组件重写之神奇的文本框和下拉框
  7. android获取内置和外置SD卡路径 - z
  8. 使用tcpdump找出PP用户
  9. 链家租房数据抓取流程、分析
  10. 数据库考试内容(MYSQL)
  11. 在阿里云容器服务上基于Istio实现出口Egress流量管理
  12. 服务器项目描述,项目服务器 2010 SP2 的描述
  13. 在sae上面运行微信第三方平台微擎,带视频录像
  14. 10分钟就能完成别人半天的工作量,Word长文档排版技巧分享
  15. 【中秋系列】马上中秋了,给老板写了个猜灯谜小脚本,猜到的越多奖金就越高?赚翻了~
  16. 她二本科毕业,拿到阿里年薪40万offer!经验都记录在这几个公众号日记中
  17. 虚拟桌面的服务器,虚拟桌面与集合
  18. Sublime的使用小技巧
  19. OA系统十五:请假申请一:【请假申请】这个内嵌界面的数据库设计;(即请假申请这个线型工作流程的数据库设计!)
  20. package.json 与 package-lock.json文件的区别

热门文章

  1. Linux文件目录操作命令-pwd命令
  2. 第1周 - 课程材料
  3. jquery滚动条插件slimScroll
  4. 陈超仁说自己的CTO成长史(3)
  5. html的基本操作和基本标签:标题,有序列表和无序列表等
  6. 墨者学院-HTTP动作练习
  7. 3D Max2018菜单栏问题处理方法(无法选中子菜单) 2021-1-1
  8. React + Ts 实现三子棋小游戏
  9. lineNumber: 8; columnNumber: 48; 元素类型为 “id“ 的内容必须匹配 “EMPTY“。
  10. 华东师范学院大学计算机考研,华东师范大学-825-2018-计算机考研-真题.pdf